1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package user
import (
"github.com/anhgelus/gokord/utils"
"github.com/anhgelus/les-copaings-bot/exp"
"github.com/bwmarrin/discordgo"
)
func (c *Copaing) AddXP(s *discordgo.Session, m *discordgo.Member, xp uint, fn func(uint, uint)) {
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(),
"exp",
c.XP,
"discord_id",
c.DiscordID,
"guild_id",
c.GuildID,
)
return
}
newLevel := exp.Level(old + xp)
if newLevel > pastLevel {
fn(old+xp, newLevel)
onNewLevel(s, m, newLevel)
}
}
|