public void GetClan(ClanWoT currentClan) { urlRequest = resourceMan.GetString("uri_get_clan_by_name") + appID + "&search=" + currentClan.ClanName; string resultResponse = GetResponse(urlRequest); JObject parsed = JObject.Parse(resultResponse); string status = (string)parsed["status"]; if (status == "ok") { int count = int.Parse((string)parsed["meta"]["count"]); if (count > 0) { currentClan.ID = int.Parse((string)parsed["data"][0]["clan_id"]); currentClan.ClanTag = (string)parsed["data"][0]["tag"]; currentClan.CountMembers = int.Parse((string)parsed["data"][0]["members_count"]); currentClan.CreatedAt = ConvertFromTimestamp( int.Parse((string)parsed["data"][0]["created_at"])); } else { throw new ClanNotFound("Клан не найден!"); } } else { throw new ClanNotFound("Ошибка запроса"); } }
public void GetStat(ClanWoT currentClan) { urlRequest = resourceMan.GetString("uri_get_stat_clan") + appID + "&clan_id=" + currentClan.ID; string resultResponse = GetResponse(urlRequest); JObject parsed = JObject.Parse(resultResponse); string status = (string)parsed["status"]; if (status == "ok") { string efficiency = (string)parsed["data"][currentClan.ID.ToString()]["efficiency"]["value"]; string globalMapStat = (string)parsed["data"][currentClan.ID.ToString()]["gm_elo_rating"]["value"]; string fbStat = (string)parsed["data"][currentClan.ID.ToString()]["fb_elo_rating"]["value"]; if (efficiency != null) { currentClan.GlobalRating = float.Parse(efficiency); } else { currentClan.GlobalRating = -1; } if (globalMapStat != null) { currentClan.GmEloRating = float.Parse(globalMapStat); } else { currentClan.GmEloRating = -1; } if (fbStat != null) { currentClan.FbEloRating = (float)parsed["data"][currentClan.ID.ToString()]["fb_elo_rating"]["value"]; } else { currentClan.FbEloRating = -1; } } else { throw new ClanNotFound("Неизвестная ошибка"); } }
static async Task MainTask(string[] args) { string token = WargaminAPI.Enigma.Decrypt(resourceMan.GetString("DisToken"), PHRASE); discord = new DiscordClient(new DiscordConfiguration { Token = token, TokenType = TokenType.Bot, UseInternalLogHandler = true, LogLevel = LogLevel.Debug }); discord.MessageCreated += async e => { string message = e.Message.Content; if (message.StartsWith("&")) { if (message.ToLower().StartsWith(HELP)) { string helpMsg = e.Author.Mention + "```css\nПомните: [] - обязательный параметр \n" + "&stats_player [type_of_game] [your_nick] - показывает вашу статистику\n" + "&clan [type_of_game] [clan_name] - показывает инфу про клан\n" + "Где [type_of_game] - список игр варгейминг:\n" + "- WoT\n- WoW\n ```"; await e.Message.RespondAsync(helpMsg); } else { string typeOfGame = parseTypeOfGame(message); if (typeOfGame == null || typeOfGame == "") { await e.Message.RespondAsync(e.Author.Mention + ",\nВы не указали, какая игра. Введите &help для помощи."); } else if (typeOfGame.ToLower() == "wow") { await e.Message.RespondAsync(e.Author.Mention + ",\nВ связи с тем, что разработчики по неизвестным причинам " + "сделали очень скудный набор публичный данных для разработчиков, адекватную статистику для WoWS сделать невозможно!\n"); } else if (typeOfGame.ToLower() == "wot") { PlayerInfo operations = new PlayerInfo(); if (message.ToLower().StartsWith(STAT_PLAYER)) { string playerNickname = parseName(message, STAT_PLAYER, typeOfGame, true); Player currentPlayer = new Player(); bool foundPlayer = false; try { currentPlayer = operations.FindPlayer(playerNickname); foundPlayer = true; } catch (PlayerNotFound ex) { await e.Message.RespondAsync(ex.Message); } catch { string infoMsg = e.Author.Mention + "Напишите GRAF или hunterlan об ошибке и пропишите все ваши действия."; await e.Message.RespondAsync(infoMsg); } if (foundPlayer) { Statistics playerStatistics = operations.GetStatistic(currentPlayer); await e.Message.RespondAsync(e.Author.Mention + "\n```Игрок: " + currentPlayer.ToString() + " \n" + playerStatistics.ToString() + "```"); } } else if (message.ToLower().StartsWith(INFO_CLAN)) { ClanInfo ops = new ClanInfo(); ClanWoT clan = new ClanWoT(); clan.ClanName = parseName(message, INFO_CLAN, typeOfGame, false); try { ops.GetClan(clan); } catch (ClanNotFound ex) { await e.Message.RespondAsync(e.Author.Mention + "\n" + ex.Message); } catch { string infoMsg = e.Author.Mention + "\nНапишите GRAF или hunterlan об ошибке и пропишите все ваши действия."; await e.Message.RespondAsync(infoMsg); } try { ops.GetStat(clan); await e.Message.RespondAsync(e.Author.Mention + clan.ToString()); } catch (ClanNotFound ex) { await e.Message.RespondAsync(e.Author.Mention + "\n" + ex.Message); } catch { string infoMsg = e.Author.Mention + "\nНапишите GRAF или hunterlan об ошибке и пропишите все ваши действия."; await e.Message.RespondAsync(infoMsg); } } } } } }; await discord.ConnectAsync(); await Task.Delay(-1); }