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);
		}
示例#2
0
		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);
		}
示例#5
0
		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;
			}
		}
示例#6
0
		/// <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;
		}