aboutsummaryrefslogtreecommitdiff
path: root/user/xp.go
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <anhgelus@anhgelus.world>2025-05-13 14:11:11 +0200
committerAnhgelus Morhtuuzh <anhgelus@anhgelus.world>2025-05-13 14:11:11 +0200
commit799df74fcda5266fd295b49fc759c605c815cad9 (patch)
tree27e5a2196877783f76fc9eef613a05125b1c773f /user/xp.go
parente0a8f6634424f10a22b0a0740e0bbc17534eaa0e (diff)
feat(xp): new add
Diffstat (limited to 'user/xp.go')
-rw-r--r--user/xp.go13
1 files changed, 6 insertions, 7 deletions
diff --git a/user/xp.go b/user/xp.go
index 23cefcd..f8bcd06 100644
--- a/user/xp.go
+++ b/user/xp.go
@@ -7,10 +7,10 @@ import (
)
func (c *Copaing) AddXP(s *discordgo.Session, m *discordgo.Member, xp uint, fn func(uint, uint)) {
- pastLevel := exp.Level(c.XP)
- old := c.XP
- c.XP += xp
- if err := c.Save(); err != nil {
+ old, err := c.GetXP()
+ pastLevel := exp.Level(old)
+ c.XP = append(c.XP, CopaingXP{CopaingID: c.ID, XP: xp, GuildID: c.GuildID})
+ if err = c.Save(); err != nil {
utils.SendAlert(
"user/xp.go - Saving user",
err.Error(),
@@ -21,12 +21,11 @@ func (c *Copaing) AddXP(s *discordgo.Session, m *discordgo.Member, xp uint, fn f
"guild_id",
c.GuildID,
)
- c.XP = old
return
}
- newLevel := exp.Level(c.XP)
+ newLevel := exp.Level(old + xp)
if newLevel > pastLevel {
- fn(c.XP, newLevel)
+ fn(old+xp, newLevel)
onNewLevel(s, m, newLevel)
}
}