package main import ( "fmt" "github.com/bwmarrin/discordgo" ) func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) { if m.Author.Bot { return } go incrementXP(s, m.Author.ID) if m.Content == "p!level" { handleXPRequest(s, m) } } func handleXPRequest(s *discordgo.Session, m *discordgo.MessageCreate) { level, xp := getLevelAndXP(s, m.Author.ID) levelUpRequirement := levelUpRequirementCache[level-1] if level > 1 { levelUpRequirement -= levelUpRequirementCache[level-2] } s.ChannelMessageSend( m.ChannelID, fmt.Sprintf( "<@%s> is now level %d. (%d XP/%d XP) [%.1f%%]", m.Author.ID, level, xp, levelUpRequirement, float64(xp)/float64(levelUpRequirement)*100, ), ) }