diff options
| author | William Hergès <william@herges.fr> | 2025-07-30 21:57:05 +0200 |
|---|---|---|
| committer | William Hergès <william@herges.fr> | 2025-07-30 21:57:05 +0200 |
| commit | b4408674c901d03da72f9471cf1a19762f03b03a (patch) | |
| tree | 13280bf0f81751093e8db14fc3060bcaa80e1a7a /commands/config.go | |
| parent | 977c818328c1c14880029510c6b3742a12858dcb (diff) | |
refactor(command): use message component to edit config
Diffstat (limited to 'commands/config.go')
| -rw-r--r-- | commands/config.go | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/commands/config.go b/commands/config.go index 48d7ab8..472a4ea 100644 --- a/commands/config.go +++ b/commands/config.go @@ -10,7 +10,15 @@ import ( "strings" ) -func ConfigShow(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) { +const ( + SelectConfigModify = "config_modify" + SelectOptConfigXpRole = "xp_role" + SelectOptConfigDisChannel = "disabled_channel" + SelectOptConfigFallbackChannel = "fallback_channel" + SelectOptConfigTimeReduce = "time_reduce" +) + +func Config(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) { cfg := config.GetGuildConfig(i.GuildID) roles := "" l := len(cfg.XpRoles) - 1 @@ -69,13 +77,46 @@ func ConfigShow(s *discordgo.Session, i *discordgo.InteractionCreate, optMap uti Inline: false, }, }, - }).Send() + }).AddComponent(discordgo.ActionsRow{Components: []discordgo.MessageComponent{ + discordgo.SelectMenu{ + MenuType: discordgo.StringSelectMenu, + CustomID: SelectConfigModify, + Placeholder: "Modifier...", + Options: []discordgo.SelectMenuOption{ + { + Label: "Rôles liés à l'XP", + Value: SelectOptConfigXpRole, + Description: "Gère les rôles liés à l'XP", + Emoji: &discordgo.ComponentEmoji{Name: "🏅"}, + }, + { + Label: "Salons désactivés", + Value: SelectOptConfigDisChannel, + Description: "Gère les salons désactivés", + Emoji: &discordgo.ComponentEmoji{Name: "❌"}, + }, + { + Label: "Salons de repli", // I don't have a better idea for this... + Value: SelectOptConfigFallbackChannel, + Description: "Spécifie le salon de repli", + Emoji: &discordgo.ComponentEmoji{Name: "💾"}, + }, + { + Label: "Temps avec la réduction", + Value: SelectOptConfigTimeReduce, + Description: "Gère le temps avant la réduction d'XP", + Emoji: &discordgo.ComponentEmoji{Name: "⌛"}, + }, + }, + Disabled: false, + }, + }}).IsEphemeral().Send() if err != nil { utils.SendAlert("config/guild.go - Sending config", err.Error()) } } -func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) { +func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) { resp.IsEphemeral() // verify every args t, ok := optMap["type"] |
