aboutsummaryrefslogtreecommitdiff
path: root/config/channel.go
diff options
context:
space:
mode:
authorWilliam Hergès <william@herges.fr>2025-09-27 18:23:27 +0200
committerWilliam Hergès <william@herges.fr>2025-09-27 18:23:27 +0200
commitb1d3bca64702e66b5ecfe5c9ea5f43aa9dc1d1e6 (patch)
tree67474ed704f529fe4941c179b7697b54099cc326 /config/channel.go
parentc46d1c34a29b10dac2a059b9d78e99a3d5d76f96 (diff)
parentcfdba5f417bb31aac564d13becc09874f17d075d (diff)
Merge branch 'main' into feat/xp-boostfeat/xp-boost
Diffstat (limited to 'config/channel.go')
-rw-r--r--config/channel.go118
1 files changed, 19 insertions, 99 deletions
diff --git a/config/channel.go b/config/channel.go
index 537d586..0c25b25 100644
--- a/config/channel.go
+++ b/config/channel.go
@@ -4,14 +4,14 @@ import (
"strings"
"github.com/anhgelus/gokord/cmd"
- "github.com/anhgelus/gokord/component"
- "github.com/anhgelus/gokord/logger"
- discordgo "github.com/nyttikord/gokord"
+ "github.com/nyttikord/gokord/bot"
+ "github.com/nyttikord/gokord/event"
+
+ "github.com/nyttikord/gokord/interaction"
)
const (
ModifyFallbackChannel = "fallback_channel"
- FallbackChannelSet = "fallback_channel_set"
ModifyDisChannel = "disabled_channel"
DisChannelAdd = "disabled_channel_add"
@@ -20,108 +20,28 @@ const (
DisChannelDelSet = "disabled_channel_del_set"
)
-func HandleModifyFallbackChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate, _ discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) {
- err := resp.IsEphemeral().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 for fallback", err.Error())
- }
-}
-
-func HandleFallbackChannelSet(_ *discordgo.Session, i *discordgo.InteractionCreate, data discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) {
- resp.IsEphemeral()
-
+func HandleModifyFallbackChannel(s bot.Session, i *event.InteractionCreate, data *interaction.MessageComponentData, _ *cmd.ResponseBuilder) bool {
cfg := GetGuildConfig(i.GuildID)
- channelID := data.Values[0]
-
+ var channelID string
+ if len(data.Values) > 0 {
+ 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())
- }
-}
-
-func HandleModifyDisChannel(_ *discordgo.Session, _ *discordgo.InteractionCreate, _ discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) {
- err := resp.IsEphemeral().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.IsEphemeral().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) {
- resp.IsEphemeral()
- 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())
+ s.Logger().Error("saving fallback channel", "error", err)
+ return false
}
+ return true
}
-func HandleDisChannelDelSet(_ *discordgo.Session, i *discordgo.InteractionCreate, data discordgo.MessageComponentInteractionData, resp *cmd.ResponseBuilder) {
- resp.IsEphemeral()
+func HandleModifyDisChannel(s bot.Session, i *event.InteractionCreate, data *interaction.MessageComponentData, _ *cmd.ResponseBuilder) bool {
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())
+ cfg.DisabledChannels = strings.Join(data.Values, ";")
+ err := cfg.Save()
+ if err != nil {
+ s.Logger().Error("unable to save disabled channel", "error", err)
+ return false
}
+ return true
}