From c408afc8797b0da5e1d73d190a8f5884870b510c Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Tue, 13 May 2025 12:50:20 +0200 Subject: style(files): reorganize everything --- commands/config.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'commands/config.go') diff --git a/commands/config.go b/commands/config.go index 1e680c7..32da9c6 100644 --- a/commands/config.go +++ b/commands/config.go @@ -5,7 +5,7 @@ import ( "github.com/anhgelus/gokord" "github.com/anhgelus/gokord/utils" "github.com/anhgelus/les-copaings-bot/config" - "github.com/anhgelus/les-copaings-bot/xp" + "github.com/anhgelus/les-copaings-bot/exp" "github.com/bwmarrin/discordgo" "strings" ) @@ -17,9 +17,9 @@ func ConfigShow(s *discordgo.Session, i *discordgo.InteractionCreate) { l := len(cfg.XpRoles) - 1 for i, r := range cfg.XpRoles { if i == l { - roles += fmt.Sprintf("> Niveau %d - <@&%s>", xp.Level(r.XP), r.RoleID) + roles += fmt.Sprintf("> Niveau %d - <@&%s>", exp.Level(r.XP), r.RoleID) } else { - roles += fmt.Sprintf("> Niveau %d - <@&%s>\n", xp.Level(r.XP), r.RoleID) + roles += fmt.Sprintf("> Niveau %d - <@&%s>\n", exp.Level(r.XP), r.RoleID) } } if len(roles) == 0 { @@ -98,7 +98,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) { } return } - exp := xp.XPForLevel(uint(level)) + exp := exp.LevelXP(uint(level)) r, ok := optMap["role"] if !ok { err := resp.Message("Le rôle n'a pas été renseigné.").Send() -- cgit v1.2.3 From 799df74fcda5266fd295b49fc759c605c815cad9 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Tue, 13 May 2025 14:11:11 +0200 Subject: feat(xp): new add --- commands/config.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'commands/config.go') diff --git a/commands/config.go b/commands/config.go index 32da9c6..4615c36 100644 --- a/commands/config.go +++ b/commands/config.go @@ -98,7 +98,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) { } return } - exp := exp.LevelXP(uint(level)) + xp := exp.LevelXP(uint(level)) r, ok := optMap["role"] if !ok { err := resp.Message("Le rôle n'a pas été renseigné.").Send() @@ -116,7 +116,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) { 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() + 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()) } @@ -124,7 +124,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) { } } cfg.XpRoles = append(cfg.XpRoles, config.XpRole{ - XP: exp, + XP: xp, RoleID: role.ID, }) err = cfg.Save() @@ -143,7 +143,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) { case "del": _, r := cfg.FindXpRole(role.ID) if r == nil { - err := resp.Message("Le rôle n'a pas été trouvé dans la config.").Send() + err = resp.Message("Le rôle n'a pas été trouvé dans la config.").Send() if err != nil { utils.SendAlert("commands/config.go - Role not found (del)", err.Error()) } @@ -165,13 +165,13 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) { case "edit": _, r := cfg.FindXpRole(role.ID) if r == nil { - err := resp.Message("Le rôle n'a pas été trouvé dans la config.").Send() + err = resp.Message("Le rôle n'a pas été trouvé dans la config.").Send() if err != nil { utils.SendAlert("commands/config.go - Role not found (edit)", err.Error()) } return } - r.XP = exp + r.XP = xp err = gokord.DB.Save(r).Error if err != nil { utils.SendAlert( @@ -186,7 +186,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) { ) } default: - err := resp.Message("Le type d'action n'est pas valide.").Send() + err = resp.Message("Le type d'action n'est pas valide.").Send() if err != nil { utils.SendAlert("commands/config.go - Invalid action type", err.Error()) } -- cgit v1.2.3 From f56e10514e0fe74599fcdaea553f59cfe0cf5f70 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Tue, 13 May 2025 21:07:04 +0200 Subject: feat(command): /config for days before reduction --- commands/config.go | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 4 deletions(-) (limited to 'commands/config.go') diff --git a/commands/config.go b/commands/config.go index 4615c36..d31b929 100644 --- a/commands/config.go +++ b/commands/config.go @@ -40,10 +40,9 @@ func ConfigShow(s *discordgo.Session, i *discordgo.InteractionCreate) { } err := resp.Embeds([]*discordgo.MessageEmbed{ { - Type: discordgo.EmbedTypeRich, - Title: "Config", - Description: "Configuration", - Color: utils.Success, + Type: discordgo.EmbedTypeRich, + Title: "Config", + Color: utils.Success, Fields: []*discordgo.MessageEmbedField{ { Name: "Salons par défaut", @@ -60,6 +59,11 @@ func ConfigShow(s *discordgo.Session, i *discordgo.InteractionCreate) { Value: chans, Inline: false, }, + { + Name: "Jours avant la réduction", + Value: fmt.Sprintf("%d", cfg.DaysXPRemains), + Inline: false, + }, }, }, }).Send() @@ -316,3 +320,46 @@ func ConfigFallbackChannel(s *discordgo.Session, i *discordgo.InteractionCreate) utils.SendAlert("commands/config.go - Channel saved message", err.Error()) } } + +func ConfigPeriodBeforeReduce(s *discordgo.Session, i *discordgo.InteractionCreate) { + optMap := utils.GenerateOptionMapForSubcommand(i) + resp := utils.ResponseBuilder{C: s, I: i} + resp.IsEphemeral() + // verify every args + days, ok := optMap["days"] + if !ok { + err := resp.Message("Le nombre de jours n'a pas été renseigné.").Send() + if err != nil { + utils.SendAlert("commands/config.go - Days not set (fallback)", err.Error()) + } + return + } + d := days.IntValue() + if d < 30 { + err := resp.Message("Le nombre de jours est inférieur à 30.").Send() + if err != nil { + utils.SendAlert("commands/config.go - Days < 30 (fallback)", err.Error()) + } + return + } + // save + cfg := config.GetGuildConfig(i.GuildID) + cfg.DaysXPRemains = uint(d) + err := cfg.Save() + if err != nil { + utils.SendAlert( + "commands/config.go - Saving config", + err.Error(), + "guild_id", + i.GuildID, + "days", + d, + ) + err = resp.Message("Il y a eu une erreur lors de la modification de de la base de données.").Send() + } else { + err = resp.Message("Nombre de jours enregistré.").Send() + } + if err != nil { + utils.SendAlert("commands/config.go - Days saved message", err.Error()) + } +} -- cgit v1.2.3 From 75ca960199b85f3f4b491652c837d297827e40ce Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Tue, 13 May 2025 21:12:19 +0200 Subject: fix(command): bad display for no default channel --- commands/config.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'commands/config.go') diff --git a/commands/config.go b/commands/config.go index d31b929..a3857c6 100644 --- a/commands/config.go +++ b/commands/config.go @@ -38,6 +38,12 @@ func ConfigShow(s *discordgo.Session, i *discordgo.InteractionCreate) { if len(chans) == 0 { chans = "Aucun salon désactivé :)" } + var defaultChan string + if len(cfg.FallbackChannel) == 0 { + defaultChan = "Pas de valeur" + } else { + defaultChan = fmt.Sprintf("<#%s>", cfg.FallbackChannel) + } err := resp.Embeds([]*discordgo.MessageEmbed{ { Type: discordgo.EmbedTypeRich, @@ -46,7 +52,7 @@ func ConfigShow(s *discordgo.Session, i *discordgo.InteractionCreate) { Fields: []*discordgo.MessageEmbedField{ { Name: "Salons par défaut", - Value: fmt.Sprintf("<#%s>", cfg.FallbackChannel), + Value: defaultChan, Inline: false, }, { -- cgit v1.2.3