From f165fa151633658363e11eeebb62ca211fcc1d15 Mon Sep 17 00:00:00 2001 From: Luther Wen Xu Date: Tue, 19 Nov 2019 15:11:32 +0800 Subject: [PATCH] prestige: Remove all level roles on prestige --- messageCreate.go | 1 + prestige.go | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/messageCreate.go b/messageCreate.go index 641b39d..03e0fdf 100644 --- a/messageCreate.go +++ b/messageCreate.go @@ -110,6 +110,7 @@ func checkPrestigeReact(s *discordgo.Session, m *discordgo.MessageReactionAdd) { } xp := getXP(s, m.UserID) newPrestigeLevel := xp/130000 + 1 + go cleanUpRole(s, m.UserID) setPrestige(s, m.UserID, newPrestigeLevel) s.ChannelMessageSend(m.ChannelID, "**PRESTIGE > ** <@%s>, you have prestiged!") } diff --git a/prestige.go b/prestige.go index ed916eb..c4a24c5 100644 --- a/prestige.go +++ b/prestige.go @@ -62,3 +62,19 @@ func getPrestige(dg *discordgo.Session, discordID string) int { prestigeCache[discordID] = 1 return 1 } + +func cleanUpRole(s *discordgo.Session, discordID string) { + member, err := s.GuildMember(guildID, discordID) + if err != nil { + logError(s, "cleanUpRole", "guildMember", discordID) + return + } + for _, v := range member.Roles { + for _, w := range rolesFromLevel { + if v == w { + s.GuildMemberRoleRemove(guildID, discordID, v) + break + } + } + } +}