aboutsummaryrefslogtreecommitdiff
path: root/commands/rank.go
diff options
context:
space:
mode:
authorWilliam Hergès <anhgelus.morhtuuzh@proton.me>2025-05-13 21:13:59 +0200
committerGitHub <noreply@github.com>2025-05-13 21:13:59 +0200
commit8d6af4b6aa8f4902316c7f30c5229c97b0ec1a81 (patch)
treed19607355cfa0a180d3269d78e7e2249aa3d2277 /commands/rank.go
parent9e826eee980634b82d6981a868b045f3d4b48852 (diff)
parent75ca960199b85f3f4b491652c837d297827e40ce (diff)
Merge pull request #8 from anhgelus/v3
V3
Diffstat (limited to 'commands/rank.go')
-rw-r--r--commands/rank.go41
1 files changed, 28 insertions, 13 deletions
diff --git a/commands/rank.go b/commands/rank.go
index 4d6f817..70c0222 100644
--- a/commands/rank.go
+++ b/commands/rank.go
@@ -3,14 +3,14 @@ package commands
import (
"fmt"
"github.com/anhgelus/gokord/utils"
- "github.com/anhgelus/les-copaings-bot/xp"
+ "github.com/anhgelus/les-copaings-bot/exp"
+ "github.com/anhgelus/les-copaings-bot/user"
"github.com/bwmarrin/discordgo"
)
func Rank(s *discordgo.Session, i *discordgo.InteractionCreate) {
optMap := utils.GenerateOptionMap(i)
- c := xp.GetCopaing(i.Member.User.ID, i.GuildID) // current copaing = member who used /rank
- xp.LastEventUpdate(s, c) // update xp and reset last event
+ c := user.GetCopaing(i.Member.User.ID, i.GuildID) // current user = member who used /rank
msg := "Votre niveau"
m := i.Member
var err error
@@ -20,13 +20,13 @@ func Rank(s *discordgo.Session, i *discordgo.InteractionCreate) {
if u.Bot {
err = resp.Message("Imagine si les bots avaient un niveau :rolling_eyes:").IsEphemeral().Send()
if err != nil {
- utils.SendAlert("rank.go - Reply error user is a bot", err.Error())
+ utils.SendAlert("commands/rank.go - Reply error user is a bot", err.Error())
}
}
m, err = s.GuildMember(i.GuildID, u.ID)
if err != nil {
utils.SendAlert(
- "rank.go - Fetching guild member",
+ "commands/rank.go - Fetching guild member",
err.Error(),
"discord_id",
u.ID,
@@ -35,24 +35,39 @@ func Rank(s *discordgo.Session, i *discordgo.InteractionCreate) {
)
err = resp.Message("Erreur : impossible de récupérer le membre").IsEphemeral().Send()
if err != nil {
- utils.SendAlert("rank.go - Reply error fetching guild member", err.Error())
+ utils.SendAlert("commands/rank.go - Reply error fetching guild member", err.Error())
}
return
}
- c = xp.GetCopaing(u.ID, i.GuildID) // current copaing = member targeted by member who wrote /rank
- xp.XPUpdate(s, c) // update xp without resetting event
+ c = user.GetCopaing(u.ID, i.GuildID) // current user = member targeted by member who wrote /rank
msg = fmt.Sprintf("Le niveau de %s", m.DisplayName())
}
- lvl := xp.Level(c.XP)
- nxtLvlXP := xp.XPForLevel(lvl + 1)
+ xp, err := c.GetXP()
+ if err != nil {
+ utils.SendAlert(
+ "commands/rank.go - Fetching xp",
+ err.Error(),
+ "discord_id",
+ c.ID,
+ "guild_id",
+ i.GuildID,
+ )
+ err = resp.Message("Erreur : impossible de récupérer l'XP").IsEphemeral().Send()
+ if err != nil {
+ utils.SendAlert("commands/rank.go - Reply error fetching xp", err.Error())
+ }
+ return
+ }
+ lvl := exp.Level(xp)
+ nxtLvlXP := exp.LevelXP(lvl + 1)
err = resp.Message(fmt.Sprintf(
"%s : **%d**\n> XP : %d\n> Prochain niveau dans %d XP",
msg,
lvl,
- c.XP,
- nxtLvlXP-c.XP,
+ xp,
+ nxtLvlXP-xp,
)).Send()
if err != nil {
- utils.SendAlert("rank.go - Sending rank", err.Error())
+ utils.SendAlert("commands/rank.go - Sending rank", err.Error())
}
}