aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <anhgelus.morhtuuzh@proton.me>2024-04-15 16:17:31 +0200
committerAnhgelus Morhtuuzh <anhgelus.morhtuuzh@proton.me>2024-04-15 16:17:31 +0200
commitfc151a9ceeb6cab8631a197c939ca6f6429d8b31 (patch)
treecb584c485ce8f73fc3f5e5c5eedfed52e731aade
parentbde93e6b8057a3e242e782ca8581b8a03d29f5b8 (diff)
fix(config): a role can be present twice
-rw-r--r--commands/config.go13
-rw-r--r--config/guild.go4
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
}
}