From fc151a9ceeb6cab8631a197c939ca6f6429d8b31 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Mon, 15 Apr 2024 16:17:31 +0200 Subject: [PATCH] fix(config): a role can be present twice --- commands/config.go | 13 +++++++++++-- config/guild.go | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/commands/config.go b/commands/config.go index 40ff667..384e9fb 100644 --- a/commands/config.go +++ b/commands/config.go @@ -86,12 +86,21 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) { // add or delete or edit switch ts { case "add": + for _, r := range cfg.XpRoles { + if r.RoleID == role.ID { + err := resp.Message("Le rôle est déjà présent dans la config").Send() + if err != nil { + utils.SendAlert("commands/config.go - Role already in config", err.Error()) + } + return + } + } cfg.XpRoles = append(cfg.XpRoles, config.XpRole{ XP: exp, RoleID: role.ID, }) case "del": - _, r := cfg.FindXpRole(exp, role.ID) + _, r := cfg.FindXpRole(role.ID) if r == nil { err := resp.Message("Le rôle n'a pas été trouvé dans la config.").Send() if err != nil { @@ -101,7 +110,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) { } gokord.DB.Delete(r) case "edit": - pos, r := cfg.FindXpRole(exp, role.ID) + pos, r := cfg.FindXpRole(role.ID) if r == nil { err := resp.Message("Le rôle n'a pas été trouvé dans la config.").Send() if err != nil { diff --git a/config/guild.go b/config/guild.go index ddeb300..df78406 100644 --- a/config/guild.go +++ b/config/guild.go @@ -32,9 +32,9 @@ func (cfg *GuildConfig) Save() { gokord.DB.Save(cfg) } -func (cfg *GuildConfig) FindXpRole(xp uint, roleID string) (int, *XpRole) { +func (cfg *GuildConfig) FindXpRole(roleID string) (int, *XpRole) { for i, r := range cfg.XpRoles { - if r.XP == xp && r.RoleID == roleID { + if r.RoleID == roleID { return i, &r } }