public async Task AwardExperienceAsync(SocketMessage messageParam) { // Don't process the message if it was a system message, or if it was a DM var message = messageParam as SocketUserMessage; if (message == null) { return; } // Don't process the message if it was supposed to be a command int argPos = 0; if (message.HasCharPrefix(cmd_prefix, ref argPos)) { return; } var user = message.Author; if (user.IsBot) { return; } var channel = message.Channel as SocketGuildChannel; if (channel == null) { return; } var context = new SocketCommandContext(_client, message); if (CharacterUtilityService.CharacterExists(user)) { byte level = ExperienceService.GetCharacterLevel(user); // passing the 5 minute check if (ratelimit.BastardizedCheckPermissionsAsync(context, _services) && level < 50) { ExperienceService.AwardExp(user); } byte newLevel = ExperienceService.GetCharacterLevel(user); if (newLevel > level) { await context.Channel.SendMessageAsync(user.Mention + " is now level " + newLevel + "!"); await ExperienceService.CharacterLevelUp(user); } } else { return; } }
public static byte GetCharacterLevel(SocketUser user) { if (CharacterUtilityService.CharacterExists(user)) // fancy way { return(GetCharacterLevel(CharacterLoadService.LoadCharacter(user))); } else { return(0); } }
public static int GetCharacterExpPoints(SocketUser user) { if (CharacterUtilityService.CharacterExists(user)) { return(GetCharacterExpPoints(CharacterLoadService.LoadCharacter(user))); } else { return(-1); } }