From 2b285f45234a8b6709ed1adf4ff151f028b51eff Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Mon, 15 Apr 2024 16:56:01 +0200 Subject: feat(config): fallback channel --- commands/config.go | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'commands/config.go') diff --git a/commands/config.go b/commands/config.go index e663b40..62b7710 100644 --- a/commands/config.go +++ b/commands/config.go @@ -43,6 +43,11 @@ func ConfigShow(s *discordgo.Session, i *discordgo.InteractionCreate) { Description: "Configuration", Color: utils.Success, Fields: []*discordgo.MessageEmbedField{ + { + Name: "Salons par défaut", + Value: fmt.Sprintf("<#%s>", cfg.FallbackChannel), + Inline: false, + }, { Name: "Rôles liés aux niveaux", Value: roles, @@ -172,7 +177,7 @@ func ConfigChannel(s *discordgo.Session, i *discordgo.InteractionCreate) { if !ok { err := resp.Message("Le salon n'a pas été renseigné.").Send() if err != nil { - utils.SendAlert("commands/config.go - Channel not set", err.Error()) + utils.SendAlert("commands/config.go - Channel not set (disabled)", err.Error()) } return } @@ -211,3 +216,34 @@ func ConfigChannel(s *discordgo.Session, i *discordgo.InteractionCreate) { utils.SendAlert("commands/config.go - Modification saved message", err.Error()) } } + +func ConfigFallbackChannel(s *discordgo.Session, i *discordgo.InteractionCreate) { + optMap := utils.GenerateOptionMapForSubcommand(i) + resp := utils.ResponseBuilder{C: s, I: i} + resp.IsEphemeral() + // verify every args + salon, ok := optMap["channel"] + if !ok { + err := resp.Message("Le salon n'a pas été renseigné.").Send() + if err != nil { + utils.SendAlert("commands/config.go - Channel not set (fallback)", err.Error()) + } + return + } + channel := salon.ChannelValue(s) + if channel.Type != discordgo.ChannelTypeGuildText { + err := resp.Message("Le salon n'est pas un salon textuel.").Send() + if err != nil { + utils.SendAlert("commands/config.go - Invalid channel type", err.Error()) + } + return + } + cfg := config.GetGuildConfig(i.GuildID) + cfg.FallbackChannel = channel.ID + // save + cfg.Save() + err := resp.Message("Salon enregistré.").Send() + if err != nil { + utils.SendAlert("commands/config.go - Channel saved message", err.Error()) + } +} -- cgit v1.2.3