diff --git a/events.go b/events.go index 4e23b69..6974606 100644 --- a/events.go +++ b/events.go @@ -10,7 +10,6 @@ import ( "github.com/anhgelus/les-copaings-bot/user" "github.com/bwmarrin/discordgo" "github.com/redis/go-redis/v9" - "slices" "strconv" "strings" "time" @@ -37,7 +36,7 @@ func OnMessage(s *discordgo.Session, m *discordgo.MessageCreate) { trimmed := utils.TrimMessage(strings.ToLower(m.Content)) m.Member.User = m.Author m.Member.GuildID = m.GuildID - xp := exp.MessageXP(uint(len(trimmed)), calcDiversity(trimmed)) + xp := exp.MessageXP(uint(len(trimmed)), exp.CalcDiversity(trimmed)) if xp > MaxXpPerMessage { xp = MaxXpPerMessage } @@ -52,16 +51,6 @@ func OnMessage(s *discordgo.Session, m *discordgo.MessageCreate) { }) } -func calcDiversity(msg string) uint { - var chars []rune - for _, c := range []rune(msg) { - if !slices.Contains(chars, c) { - chars = append(chars, c) - } - } - return uint(len(chars)) -} - func OnVoiceUpdate(s *discordgo.Session, e *discordgo.VoiceStateUpdate) { if e.Member.User.Bot { return diff --git a/exp/functions.go b/exp/functions.go index da535c4..c69ef26 100644 --- a/exp/functions.go +++ b/exp/functions.go @@ -3,6 +3,7 @@ package exp import ( "github.com/anhgelus/gokord" "math" + "slices" ) func MessageXP(length uint, diversity uint) uint { @@ -11,6 +12,16 @@ func MessageXP(length uint, diversity uint) uint { )) } +func CalcDiversity(msg string) uint { + var chars []rune + for _, c := range []rune(msg) { + if !slices.Contains(chars, c) { + chars = append(chars, c) + } + } + return uint(len(chars)) +} + func VocalXP(time uint) uint { return uint(math.Floor( 0.01*math.Pow(float64(time), 1.3) + 1,