aboutsummaryrefslogtreecommitdiff
path: root/config/channel.go
diff options
context:
space:
mode:
authorWilliam Hergès <william@herges.fr>2025-08-06 15:13:19 +0200
committerWilliam Hergès <william@herges.fr>2025-08-06 15:13:19 +0200
commit6d19ef42c4135dac57c23bf6d00041423255598d (patch)
tree44f09db6002963b39002756b3dfa80d8034428f2 /config/channel.go
parent0968c18b15c5fe58c0220fa20ef6a87000bd1a1e (diff)
refactor(config): handle fallback channel
Diffstat (limited to 'config/channel.go')
-rw-r--r--config/channel.go43
1 files changed, 43 insertions, 0 deletions
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())
+ }
+}