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 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."); } }
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); } }
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); } }
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()); }
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."); } }
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!"); } }