aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/xp_role.go61
1 files changed, 7 insertions, 54 deletions
diff --git a/config/xp_role.go b/config/xp_role.go
index b35966f..8aae5a4 100644
--- a/config/xp_role.go
+++ b/config/xp_role.go
@@ -2,7 +2,6 @@ package config
import (
"fmt"
- "slices"
"strconv"
"git.anhgelus.world/anhgelus/les-copaings-bot/exp"
@@ -145,11 +144,11 @@ func HandleXpRoleEdit(
session.LogError(err, "Reading dynamic CustomID")
return
}
- roleIndex := slices.IndexFunc(config.XpRoles, func(role XpRole) bool { return role.ID == id })
- if roleIndex == -1 {
+ _, role := config.FindXpRoleID(id)
+ if role == nil {
+ HandleXpRole(session, i, interaction.MessageComponentData{}, resp)
return
}
- role := config.XpRoles[roleIndex]
roleSelect := &component.SelectMenu{
MenuType: types.SelectMenuRole,
@@ -211,24 +210,8 @@ func HandleXpRoleEditRole(
}
role := data.Values[0]
cfg := GetGuildConfig(i.GuildID)
- for _, xpRole := range cfg.XpRoles {
- if xpRole.RoleID == role {
- err = session.InteractionAPI().Respond(i.Interaction, &interaction.Response{
- Type: types.InteractionResponseChannelMessageWithSource,
- Data: &interaction.ResponseData{
- Flags: channel.MessageFlagsEphemeral,
- AllowedMentions: &channel.MessageAllowedMentions{},
- Content: fmt.Sprintf("Un autre niveau avec le rôle <@&%s> est déjà existant.", role),
- },
- })
- if err != nil {
- session.LogError(err, "Sending unable to Already existing role message")
- }
- return
- }
- }
- index, xprole := cfg.FindXpRoleID(id)
- if index == 0 {
+ _, xprole := cfg.FindXpRoleID(id)
+ if xprole == nil {
err = session.InteractionAPI().Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseChannelMessageWithSource,
Data: &interaction.ResponseData{
@@ -333,23 +316,8 @@ func HandleXpRoleEditLevel(
xp := exp.LevelXP(uint(level))
cfg := GetGuildConfig(i.GuildID)
- for _, xpRole := range cfg.XpRoles {
- if xpRole.XP == xp {
- err = session.InteractionAPI().Respond(i.Interaction, &interaction.Response{
- Type: types.InteractionResponseChannelMessageWithSource,
- Data: &interaction.ResponseData{
- Flags: channel.MessageFlagsEphemeral,
- Content: fmt.Sprintf("Un autre rôle est déjà lié au niveau %d.", level),
- },
- })
- if err != nil {
- session.LogError(err, "Sending unable to Already existing level message")
- }
- return
- }
- }
- index, xprole := cfg.FindXpRoleID(id)
- if index == -1 {
+ _, xprole := cfg.FindXpRoleID(id)
+ if xprole == nil {
err = session.InteractionAPI().Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseChannelMessageWithSource,
Data: &interaction.ResponseData{
@@ -430,21 +398,6 @@ func HandleXpRoleAdd(
roleId := data.Components[1].(*component.Label).Component.(*component.SelectMenu).Values[0]
cfg := GetGuildConfig(i.GuildID)
- for _, r := range cfg.XpRoles {
- if r.RoleID == roleId {
- err := resp.IsEphemeral().SetMessage(fmt.Sprintf("Le rôle <@&%s> est déjà lié au niveau %d.", r.RoleID, exp.Level(r.XP))).Send()
- if err != nil {
- session.LogError(err, "sending role already in config")
- }
- return
- } else if r.XP == xp {
- err := resp.IsEphemeral().SetMessage(fmt.Sprintf("Le niveau %d est déjà lié au rôle <@&%s>.", in, r.RoleID)).Send()
- if err != nil {
- session.LogError(err, "sending role already in config")
- }
- return
- }
- }
cfg.XpRoles = append(cfg.XpRoles, XpRole{
XP: xp,
RoleID: roleId,