From 6d19ef42c4135dac57c23bf6d00041423255598d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Herg=C3=A8s?= Date: Wed, 6 Aug 2025 15:13:19 +0200 Subject: refactor(config): handle fallback channel --- config/channel.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 config/channel.go (limited to 'config/channel.go') diff --git a/config/channel.go b/config/channel.go new file mode 100644 index 0000000..2ef8b48 --- /dev/null +++ b/config/channel.go @@ -0,0 +1,43 @@ +package config + +import ( + "github.com/anhgelus/gokord/cmd" + "github.com/anhgelus/gokord/component" + "github.com/anhgelus/gokord/logger" + "github.com/bwmarrin/discordgo" +) + +const ( + ModifyDisChannel = "disabled_channel" + ModifyFallbackChannel = "fallback_channel" + FallbackChannelSet = "fallback_channel_set" +) + +func HandleModifyFallbackChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate, _ discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { + err := resp.SetMessage("Salon de repli...").SetComponents(component.New().Add(component.NewActionRow().Add( + component.NewChannelSelect(FallbackChannelSet).AddChannelType(discordgo.ChannelTypeGuildText), + ))).Send() + if err != nil { + logger.Alert("config/channel.go - Sending channel list", err.Error()) + } +} + +func HandleFallbackChannelSet(_ *discordgo.Session, i *discordgo.InteractionCreate, data discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { + resp.IsEphemeral() + + cfg := GetGuildConfig(i.GuildID) + channelID := data.Values[0] + + cfg.FallbackChannel = channelID + err := cfg.Save() + if err != nil { + logger.Alert("config/channel.go - Saving fallback channel", err.Error()) + if err = resp.SetMessage("Erreur lors de la sauvegarde du salon").Send(); err != nil { + logger.Alert("config/channel.go - Sending error while saving channel", err.Error()) + } + return + } + if err = resp.SetMessage("Salon sauvegardé.").Send(); err != nil { + logger.Alert("config/channel.go - Sending channel saved", err.Error()) + } +} -- cgit v1.2.3 From b9466f812284bb6feb793de6229cf7266dc24361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Herg=C3=A8s?= Date: Wed, 6 Aug 2025 15:51:17 +0200 Subject: refactor(config): handle disabled channels --- config/channel.go | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 2 deletions(-) (limited to 'config/channel.go') diff --git a/config/channel.go b/config/channel.go index 2ef8b48..7b74169 100644 --- a/config/channel.go +++ b/config/channel.go @@ -5,12 +5,18 @@ import ( "github.com/anhgelus/gokord/component" "github.com/anhgelus/gokord/logger" "github.com/bwmarrin/discordgo" + "strings" ) const ( - ModifyDisChannel = "disabled_channel" ModifyFallbackChannel = "fallback_channel" FallbackChannelSet = "fallback_channel_set" + + ModifyDisChannel = "disabled_channel" + DisChannelAdd = "disabled_channel_add" + DisChannelAddSet = "disabled_channel_add_set" + DisChannelDel = "disabled_channel_del" + DisChannelDelSet = "disabled_channel_del_set" ) func HandleModifyFallbackChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate, _ discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { @@ -18,7 +24,7 @@ func HandleModifyFallbackChannel(_ *discordgo.Session, _ *discordgo.InteractionC component.NewChannelSelect(FallbackChannelSet).AddChannelType(discordgo.ChannelTypeGuildText), ))).Send() if err != nil { - logger.Alert("config/channel.go - Sending channel list", err.Error()) + logger.Alert("config/channel.go - Sending channel list for fallback", err.Error()) } } @@ -41,3 +47,78 @@ func HandleFallbackChannelSet(_ *discordgo.Session, i *discordgo.InteractionCrea logger.Alert("config/channel.go - Sending channel saved", err.Error()) } } + +func HandleModifyDisChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate, _ discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { + err := resp.SetMessage("Salon de repli...").SetComponents(component.New().Add(component.NewActionRow(). + Add( + component.NewButton(DisChannelAdd, discordgo.PrimaryButton). + SetLabel("Désactiver un salon"). + SetEmoji(&discordgo.ComponentEmoji{Name: "⬇️"}), + ). + Add( + component.NewButton(DisChannelDel, discordgo.DangerButton). + SetLabel("Réactiver un salon"). + SetEmoji(&discordgo.ComponentEmoji{Name: "⬆️"}), + ), + )).Send() + if err != nil { + logger.Alert("config/channel.go - Sending action type", err.Error()) + } +} + +func HandleDisChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate, data discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { + resp.SetMessage("Salon à désactiver...") + cID := DisChannelAddSet + if data.CustomID == DisChannelDel { + resp.SetMessage("Salon à réactiver...") + cID = DisChannelDelSet + } + err := resp.SetComponents(component.New().Add(component.NewActionRow().Add(component.NewChannelSelect(cID)))).Send() + if err != nil { + logger.Alert("config/channel.go - Sending channel list for disable", err.Error()) + } +} + +func HandleDisChannelAddSet(_ *discordgo.Session, i *discordgo.InteractionCreate, data discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { + cfg := GetGuildConfig(i.GuildID) + id := data.Values[0] + if strings.Contains(cfg.DisabledChannels, id) { + err := resp.SetMessage("Le salon est déjà dans la liste des salons désactivés").Send() + if err != nil { + logger.Alert("commands/config.go - Channel already disabled", err.Error()) + } + return + } + cfg.DisabledChannels += id + ";" + if err := cfg.Save(); err != nil { + logger.Alert("commands/config.go - Saving config disable add", err.Error()) + if err = resp.SetMessage("Il y a eu une erreur lors de la modification de de la base de données.").Send(); err != nil { + logger.Alert("config/channel.go - Sending error while saving config", err.Error()) + } + } + if err := resp.SetMessage("Modification sauvegardé.").Send(); err != nil { + logger.Alert("commands/config.go - Modification saved message disable add", err.Error()) + } +} + +func HandleDisChannelDelSet(_ *discordgo.Session, i *discordgo.InteractionCreate, data discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { + cfg := GetGuildConfig(i.GuildID) + id := data.Values[0] + if !strings.Contains(cfg.DisabledChannels, id) { + err := resp.SetMessage("Le salon n'est pas désactivé").Send() + if err != nil { + logger.Alert("commands/config.go - Channel not disabled", err.Error()) + } + return + } + cfg.DisabledChannels = strings.ReplaceAll(cfg.DisabledChannels, id+";", "") + if err := cfg.Save(); err != nil { + logger.Alert("commands/config.go - Saving config disable del", err.Error()) + if err = resp.SetMessage("Il y a eu une erreur lors de la modification de de la base de données.").Send(); err != nil { + logger.Alert("config/channel.go - Sending error while saving config", err.Error()) + } + } + if err := resp.SetMessage("Modification sauvegardé.").Send(); err != nil { + logger.Alert("commands/config.go - Modification saved message disable del", err.Error()) + } +} -- cgit v1.2.3 From 7c9d6571fd6179837ca9fb9d30bf2ea82dc81197 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Herg=C3=A8s?= Date: Wed, 6 Aug 2025 16:14:30 +0200 Subject: fix(config): not all interaction were ephemeral --- config/channel.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'config/channel.go') diff --git a/config/channel.go b/config/channel.go index 7b74169..355b0e1 100644 --- a/config/channel.go +++ b/config/channel.go @@ -20,7 +20,7 @@ const ( ) func HandleModifyFallbackChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate, _ discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { - err := resp.SetMessage("Salon de repli...").SetComponents(component.New().Add(component.NewActionRow().Add( + err := resp.IsEphemeral().SetComponents(component.New().Add(component.NewActionRow().Add( component.NewChannelSelect(FallbackChannelSet).AddChannelType(discordgo.ChannelTypeGuildText), ))).Send() if err != nil { @@ -49,7 +49,7 @@ func HandleFallbackChannelSet(_ *discordgo.Session, i *discordgo.InteractionCrea } func HandleModifyDisChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate, _ discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { - err := resp.SetMessage("Salon de repli...").SetComponents(component.New().Add(component.NewActionRow(). + err := resp.IsEphemeral().SetComponents(component.New().Add(component.NewActionRow(). Add( component.NewButton(DisChannelAdd, discordgo.PrimaryButton). SetLabel("Désactiver un salon"). @@ -67,7 +67,7 @@ func HandleModifyDisChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate } func HandleDisChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate, data discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { - resp.SetMessage("Salon à désactiver...") + resp.IsEphemeral().SetMessage("Salon à désactiver...") cID := DisChannelAddSet if data.CustomID == DisChannelDel { resp.SetMessage("Salon à réactiver...") @@ -80,6 +80,7 @@ func HandleDisChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate, data } func HandleDisChannelAddSet(_ *discordgo.Session, i *discordgo.InteractionCreate, data discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { + resp.IsEphemeral() cfg := GetGuildConfig(i.GuildID) id := data.Values[0] if strings.Contains(cfg.DisabledChannels, id) { @@ -102,6 +103,7 @@ func HandleDisChannelAddSet(_ *discordgo.Session, i *discordgo.InteractionCreate } func HandleDisChannelDelSet(_ *discordgo.Session, i *discordgo.InteractionCreate, data discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) { + resp.IsEphemeral() cfg := GetGuildConfig(i.GuildID) id := data.Values[0] if !strings.Contains(cfg.DisabledChannels, id) { -- cgit v1.2.3 From c04f4d9fff2e753f0477a07a9f8f43fbcba8969e Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Thu, 21 Aug 2025 14:59:23 +0200 Subject: build(go): rename module to use git.anhgelus.world instead of github --- config/channel.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'config/channel.go') diff --git a/config/channel.go b/config/channel.go index 355b0e1..7c70443 100644 --- a/config/channel.go +++ b/config/channel.go @@ -1,11 +1,12 @@ package config import ( + "strings" + "github.com/anhgelus/gokord/cmd" "github.com/anhgelus/gokord/component" "github.com/anhgelus/gokord/logger" "github.com/bwmarrin/discordgo" - "strings" ) const ( -- cgit v1.2.3 From 30ecd60b041398390f11fccdf46444fa28690bd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Herg=C3=A8s?= Date: Thu, 4 Sep 2025 16:25:59 +0200 Subject: build(gokord): upgrade to latest nightly still use discordgo name before merging anhgelus/gokord with nyttikord/gokord --- config/channel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'config/channel.go') diff --git a/config/channel.go b/config/channel.go index 7c70443..537d586 100644 --- a/config/channel.go +++ b/config/channel.go @@ -6,7 +6,7 @@ import ( "github.com/anhgelus/gokord/cmd" "github.com/anhgelus/gokord/component" "github.com/anhgelus/gokord/logger" - "github.com/bwmarrin/discordgo" + discordgo "github.com/nyttikord/gokord" ) const ( -- cgit v1.2.3