diff options
| author | Anhgelus Morhtuuzh <anhgelus@anhgelus.world> | 2025-05-13 14:11:11 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <anhgelus@anhgelus.world> | 2025-05-13 14:11:11 +0200 |
| commit | 799df74fcda5266fd295b49fc759c605c815cad9 (patch) | |
| tree | 27e5a2196877783f76fc9eef613a05125b1c773f /user/xp.go | |
| parent | e0a8f6634424f10a22b0a0740e0bbc17534eaa0e (diff) | |
feat(xp): new add
Diffstat (limited to 'user/xp.go')
| -rw-r--r-- | user/xp.go | 13 |
1 files changed, 6 insertions, 7 deletions
@@ -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) } } |
