Example #1
0
        public async Task <bool> CheckIfAdmin(SocketMessage message)
        {
            var monsterRepository = new MonsterRepository(Settings.GetConnectionString("database"), Settings.GetDatabaseSchemaName());
            var player            = await monsterRepository.GetPlayer(message.Author.ToString());

            if (player == null)
            {
                player = await monsterRepository.CreatePlayer(message.Author.ToString());
            }

            return(player.IsAdmin);
        }
        public async Task <ActionResult> Index([FromQuery] string discordId)
        {
            var monsterRepository = new MonsterRepository(Settings.GetConnectionString("Database"), Settings.GetDatabaseSchemaName());
            var player            = await monsterRepository.GetPlayer(discordId);

            var homeModel = new HomeModel
            {
                Player            = player,
                PlayerMonsterList = await monsterRepository.GetList(player)
            };

            return(View(homeModel));
        }
Example #3
0
        public async Task GetMonsterAppearTimer(SocketMessage message)
        {
            var monsterRepository = new MonsterRepository(Settings.GetConnectionString("database"), Settings.GetDatabaseSchemaName());
            var player            = await monsterRepository.GetPlayer(message.Author.ToString());

            if (player == null)
            {
                player = await monsterRepository.CreatePlayer(message.Author.ToString());
            }

            if (player.IsAdmin)
            {
                await message.Channel.SendMessageAsync($"The next Discord monster will appear in {MonsterAppearTimer} minutes.");
            }
        }
Example #4
0
        public async Task GetMonsterList(SocketMessage message)
        {
            var monsterRepository = new MonsterRepository(Settings.GetConnectionString("database"), Settings.GetDatabaseSchemaName());
            var player            = await monsterRepository.GetPlayer(message.Author.ToString());

            if (player == null)
            {
                player = await monsterRepository.CreatePlayer(message.Author.ToString());
            }

            var list = await monsterRepository.GetList(player);

            if (!list.Any())
            {
                await message.Channel.SendMessageAsync($"{message.Author.ToString()} does not currently have any Discord monsters");

                return;
            }

            var discordMonsterList = $"List of Monsters for {message.Author.ToString()}\n";

            foreach (var item in list)
            {
                discordMonsterList += $"{item.monster.Name} (Level: {item.playerCatch.Level})\n";
            }

            var sendString = new List <string>();

            if (discordMonsterList.Length > 2000)
            {
                if (Settings.WebInterfaceEnabled())
                {
                    return;
                }
                var url = GetPlayerWebUrl(message.Author.ToString());
                discordMonsterList = $"Monster list is to large, view at the link here \n {url}";
            }

            if (message.Content.ToLower().Contains(":public"))
            {
                await message.Channel.SendMessageAsync(discordMonsterList);
            }
            else
            {
                await message.Author.SendMessageAsync(discordMonsterList);
            }
        }
Example #5
0
        public async Task SayMessage(SocketMessage message, DiscordSocketClient client)
        {
            var monsterRepository = new MonsterRepository(Settings.GetConnectionString("database"), Settings.GetDatabaseSchemaName());
            var player            = await monsterRepository.GetPlayer(message.Author.ToString());

            if (player == null)
            {
                player = await monsterRepository.CreatePlayer(message.Author.ToString());
            }

            if (player.IsAdmin)
            {
                var whatToSay = message.Content.Remove(0, 10);
                var channel   = client.GetChannel(Settings.GetDiscordChannelId()) as SocketTextChannel;
                await channel.SendMessageAsync(whatToSay);
            }
        }
Example #6
0
        public async Task GetProfileString(SocketMessage message)
        {
            var monsterRepository = new MonsterRepository(Settings.GetConnectionString("database"), Settings.GetDatabaseSchemaName());
            var player            = await monsterRepository.GetPlayer(message.Author.ToString());

            if (player == null)
            {
                player = await monsterRepository.CreatePlayer(message.Author.ToString());
            }

            var sb = new StringBuilder();

            sb.Append("```" +
                      "User - " + player.DiscordId + "\n" +
                      "Level - " + player.Level + "\n" +
                      "Exp - " + player.Experience + "\n" +
                      "```");

            await message.Author.SendMessageAsync(sb.ToString());
        }
Example #7
0
        public async Task ClearMessages(SocketMessage message)
        {
            var monsterRepository = new MonsterRepository(Settings.GetConnectionString("database"), Settings.GetDatabaseSchemaName());
            var player            = await monsterRepository.GetPlayer(message.Author.ToString());

            if (player == null)
            {
                player = await monsterRepository.CreatePlayer(message.Author.ToString());
            }

            if (player.IsAdmin)
            {
                var messages = await message.Channel.GetMessagesAsync(1000).FlattenAsync();

                await((ITextChannel)message.Channel).DeleteMessagesAsync(messages);
                const int delay = 3000;
                await Task.Delay(delay);

                await message.DeleteAsync();

                await message.Channel.SendMessageAsync($"Admin {message.Author.ToString()} has cleared the chat.");
            }
        }
Example #8
0
        public async Task CatchMonster(SocketMessage message)
        {
            if (ActiveMonster == null)
            {
                await message.Channel.SendMessageAsync($"No active monster to catch. Try later.");

                return;
            }

            var player = await _monsterRepository.GetPlayer(message.Author.ToString());

            if (player == null)
            {
                player = await _monsterRepository.CreatePlayer(message.Author.ToString());
            }

            var catchSuccess = GetCatchSuccess(player);

            if (catchSuccess)
            {
                var catchImageUrl = Settings.GetCatchImageUrl();

                await message.Channel.SendMessageAsync($"{catchImageUrl} \n {player.DiscordId} caught the {ActiveMonster.Name}!");

                await _monsterRepository.IncreasePlayerExperience(player, ActiveMonster.BaseExperienceAward *ActiveMonster.Level);

                await _monsterRepository.AddPlayerCatch(player, ActiveMonster);

                Console.WriteLine($"New monster will spawn in {MonsterAppearTimer} minutes");
                ActiveMonster = null;
            }
            else
            {
                await message.Channel.SendMessageAsync($"{player.DiscordId} failed to catch the {ActiveMonster.Name}! GET RECKT!");
            }
        }