aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/channel.go85
1 files changed, 83 insertions, 2 deletions
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())
+ }
+}