diff --git a/modules/commands/prestige.go b/modules/commands/prestige.go index 5790357..96013dc 100644 --- a/modules/commands/prestige.go +++ b/modules/commands/prestige.go @@ -93,6 +93,7 @@ func ListenPrestigeReact(s *discordgo.Session, m *discordgo.MessageReactionAdd) log.Error(s, "checkPrestigeReact", "SetPrestigeMultiplier", err) return } + level.ClearCache(m.UserID) s.ChannelMessageSend(m.ChannelID, fmt.Sprintf( "**PRESTIGE > ** <@%s>, you have prestiged!", m.UserID, diff --git a/modules/level/scheduler.go b/modules/level/scheduler.go index 26a8e3b..1dc53c1 100644 --- a/modules/level/scheduler.go +++ b/modules/level/scheduler.go @@ -17,6 +17,12 @@ var ( lastKnownLevel = make(map[string]int) ) +func ClearCache(discordID string) { + levelMutex.Lock() + defer levelMutex.Unlock() + delete(lastKnownLevel, discordID) +} + func QueueCheck(discordID string) { levelMutex.Lock() defer levelMutex.Unlock() @@ -46,7 +52,11 @@ func ScheduleUpdates(s *discordgo.Session) { return } if newLevel > oldLevel { - err = gacha.RollReward(s, checkID, newLevel-oldLevel) + timeToRoll := newLevel - oldLevel + if oldLevel == 0 { + timeToRoll-- + } + err = gacha.RollReward(s, checkID, timeToRoll) if err != nil { log.Error(s, err) }