Example #1
0
        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;
            }
        }
Example #2
0
 public static byte GetCharacterLevel(SocketUser user)
 {
     if (CharacterUtilityService.CharacterExists(user)) // fancy way
     {
         return(GetCharacterLevel(CharacterLoadService.LoadCharacter(user)));
     }
     else
     {
         return(0);
     }
 }
Example #3
0
 public static int GetCharacterExpPoints(SocketUser user)
 {
     if (CharacterUtilityService.CharacterExists(user))
     {
         return(GetCharacterExpPoints(CharacterLoadService.LoadCharacter(user)));
     }
     else
     {
         return(-1);
     }
 }