public Task<IEnumerable<Suspect>> GetBanStatusForUserList(List<string> users) { List<Suspect> suspects = new List<Suspect>(); Suspect suspect = new Suspect { SteamId = "133713371337", ProfileUrl = "http://steamcommunity.com/id/133713371337/", Nickname = "The Suspect", LastLogOff = 11111, CurrentStatus = 0, ProfileState = 0, AvatarUrl = "http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/fe/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_full.jpg", CommunityVisibilityState = 0, DaySinceLastBanCount = 10, BanCount = 1, VacBanned = true, CommunityBanned = false, EconomyBan = "none" }; suspects.Add(suspect); IEnumerable<Suspect> suspectOrdered = suspects.OrderBy(s => s.Nickname); return Task.FromResult(suspectOrdered); }
public async Task<Suspect> GetBanStatusForUser(string steamId) { Match match = _regexSteamCommunityUrl.Match(steamId); if(match.Success) { steamId = match.Groups["steamID"].Value; } using (var httpClient = new HttpClient()) { // Grab general infos from user string url = string.Format(PLAYERS_SUMMARIES_URL, AppSettings.STEAM_API_KEY, steamId); HttpResponseMessage result = await httpClient.GetAsync(url); string json = await result.Content.ReadAsStringAsync(); JObject o = JObject.Parse(json); var playerSummary = o.SelectToken("response.players.player[0]").ToObject<PlayerSummary>(); if (playerSummary == null) return null; // Grab VAC ban infos from user url = string.Format(PLAYERS_BAN_URL, AppSettings.STEAM_API_KEY, steamId); result = await httpClient.GetAsync(url); json = await result.Content.ReadAsStringAsync(); o = JObject.Parse(json); var playerBan = o.SelectToken("players[0]").ToObject<PlayerBan>(); if (playerBan == null) return null; Suspect suspect = new Suspect { SteamId = playerSummary.SteamId, ProfileUrl = playerSummary.ProfileUrl, Nickname = playerSummary.PersonaName, LastLogOff = playerSummary.LastLogoff, CurrentStatus = playerSummary.PersonaState, ProfileState = playerSummary.ProfileState, AvatarUrl = playerSummary.AvatarFull, CommunityVisibilityState = playerSummary.CommunityVisibilityState, DaySinceLastBanCount = playerBan.DaysSinceLastBan, BanCount = playerBan.NumberOfVacBans, VacBanned = playerBan.VacBanned, CommunityBanned = playerBan.CommunityBanned, EconomyBan = playerBan.EconomyBan, GameBanCount = playerBan.NumberOfGameBans }; return suspect; } }
public Task<Suspect> GetBanStatusForUser(string steamId) { Suspect suspect = new Suspect { SteamId = "133713371337", ProfileUrl = "http://steamcommunity.com/id/133713371337/", Nickname = "The Suspect", LastLogOff = 11111, CurrentStatus = 0, ProfileState = 0, AvatarUrl = "http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/fe/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_full.jpg", CommunityVisibilityState = 0, DaySinceLastBanCount = 10, BanCount = 1, VacBanned = true, CommunityBanned = false, EconomyBan = "none" }; return Task.FromResult(suspect); }
public Task<bool> AddSuspectToBannedList(Suspect suspect) { return Task.FromResult(true); }
public async Task<IEnumerable<Suspect>> GetBanStatusForUserList(List<string> users) { using (var httpClient = new HttpClient()) { string ids = string.Join(",", users.ToArray()); // Grab general infos from user string url = string.Format(PLAYERS_SUMMARIES_URL, AppSettings.STEAM_API_KEY, ids); HttpResponseMessage result = await httpClient.GetAsync(url); string json = await result.Content.ReadAsStringAsync(); JObject o = JObject.Parse(json); var playerSummaryList = o.SelectToken("response.players.player").ToObject<List<PlayerSummary>>(); if (playerSummaryList == null) return null; // Grab VAC ban infos from user url = string.Format(PLAYERS_BAN_URL, AppSettings.STEAM_API_KEY, ids); result = await httpClient.GetAsync(url); json = await result.Content.ReadAsStringAsync(); o = JObject.Parse(json); var playerBanList = o.SelectToken("players").ToObject<List<PlayerBan>>(); if (playerBanList == null) return null; List<Suspect> suspects = new List<Suspect>(); foreach(PlayerSummary playerSummary in playerSummaryList) { Suspect suspect = new Suspect { SteamId = playerSummary.SteamId, ProfileUrl = playerSummary.ProfileUrl, Nickname = playerSummary.PersonaName, LastLogOff = playerSummary.LastLogoff, CurrentStatus = playerSummary.PersonaState, ProfileState = playerSummary.ProfileState, AvatarUrl = playerSummary.AvatarFull, CommunityVisibilityState = playerSummary.CommunityVisibilityState }; suspects.Add(suspect); } foreach (PlayerBan playerBan in playerBanList) { suspects.First(pl => pl.SteamId == playerBan.SteamId).DaySinceLastBanCount = playerBan.DaysSinceLastBan; suspects.First(pl => pl.SteamId == playerBan.SteamId).BanCount = playerBan.NumberOfVacBans; suspects.First(pl => pl.SteamId == playerBan.SteamId).VacBanned = playerBan.VacBanned; suspects.First(pl => pl.SteamId == playerBan.SteamId).CommunityBanned = playerBan.CommunityBanned; suspects.First(pl => pl.SteamId == playerBan.SteamId).EconomyBan = playerBan.EconomyBan; suspects.First(pl => pl.SteamId == playerBan.SteamId).GameBanCount = playerBan.NumberOfGameBans; } IEnumerable<Suspect> suspectOrdered = suspects.OrderBy(suspect => suspect.Nickname); return suspectOrdered; } }
/// <summary> /// Add a player to the suspects banned list /// </summary> /// <param name="suspect"></param> /// <returns></returns> public async Task<bool> AddSuspectToBannedList(Suspect suspect) { // Get current list List<string> ids = await GetSuspectsBannedList(); // Check if already in the list if (ids.Contains(suspect.SteamId)) return false; ids.Add(suspect.SteamId); // If not add it and update string json = await Task.Factory.StartNew(() => JsonConvert.SerializeObject(ids)); string pathSuspectsBannedFileJson = _pathFolderCache + "\\" + SUSPECT_BANNED_FILENAME; File.WriteAllText(pathSuspectsBannedFileJson, json); return true; }