private static async Task GetGameResults(string apiKey, string userKey) { var command = new GetUsersGames(apiKey, userKey); var results = await command.ExecuteAsync(); var command2 = new GetGames(apiKey); int index = 1; foreach (var result in results.response.games) { command2.SetAppId(result.appid); var game = await command2.ExecuteAsync().ConfigureAwait(false); Console.WriteLine($"Game {index}: appName - {game.game.gameName} ,app_id - {result.appid}, playtime_forever - {result.playtime_forever}"); index++; } }
private async Task GetRandomGame(string apiKey, string userId) { //var command = new GetUsersGames(apiKey, userId); if (_userGameList == null) { _userGameList = await _steamApiClient.GetUsersGames(userId).ConfigureAwait(false); } var command2 = new GetGames(apiKey); GameData game; int id; do { var appIds = _userGameList.response.games.Select(x => x.appid).ToList(); //One Route int r = rnd.Next(appIds.Count); //TODO: Filter results id = appIds[r]; var gameToRemove = _userGameList.response.games.FirstOrDefault(x => x.appid == id); command2.SetAppId(id); game = await command2.ExecuteAsync().ConfigureAwait(false); if (game.game.gameName == null) { //REmove app id from list var removed = _userGameList.response.games.Remove(gameToRemove); if (removed) { Console.WriteLine($"INFO: App Id resulted in a null game name. Game Removed From List AppId: {id}"); } } if (game.game.gameName == "") { Console.WriteLine($"INFO: App Id resulted in a game name of \"\". Game NOT Removed From List AppId: {id}"); } } while (game.game.gameName == null); Console.WriteLine($"Random Game Name - {game.game.gameName} ,app_id - {id}"); }
public static void HandleMessage(GetGames request, CommunicationServer server, Socket handler) { List <GameInfo> gi = new List <GameInfo>(); foreach (var game in server.RegisteredGames) { if (game.HasStarted) { continue; } gi.Add(new GameInfo() { blueTeamPlayers = game.BlueTeamPlayersCount, redTeamPlayers = game.RedTeamPlayersCount, gameName = game.Name }); } var rg = new RegisteredGames() { GameInfo = gi.ToArray() }; server.ConnectionEndpoint.SendFromServer(handler, XmlMessageConverter.ToXml(rg)); }
/// <summary> /// Checks for installed games /// </summary> /// <returns>True if new games were found, otherwise false</returns> public async Task <bool> RunGameFinderAsync() { if (IsGameFinderRunning) { return(false); } IsGameFinderRunning = true; // Keep track of found games which have been added var addedGames = new List <Games>(); try { // Get all games which have not been added var games = GetGames.Where(x => !x.IsAdded()).ToArray(); RL.Logger?.LogTraceSource($"The following games were added to the game checker: {games.JoinItems(", ")}"); // Get additional finder items var finderItems = new List <FinderItem>(1); // Create DOSBox finder item if it doesn't exist if (!File.Exists(Data.DosBoxPath)) { var names = new string[] { "DosBox", "Dos Box" }; void foundAction(FileSystemPath installDir, object parameter) { if (File.Exists(Data.DosBoxPath)) { RL.Logger?.LogWarningSource("The DosBox executable was not added from the game finder due to already having been added"); return; } RL.Logger?.LogInformationSource("The DosBox executable was found from the game finder"); Data.DosBoxPath = installDir + "DOSBox.exe"; } finderItems.Add(new FinderItem(names, "DosBox", x => (x + "DOSBox.exe").FileExists ? x : null, foundAction, "DOSBox")); } // Run the game finder and get the result var foundItems = await new GameFinder(games, finderItems).FindGamesAsync(); // Add the found items foreach (var foundItem in foundItems) { // Handle the item await foundItem.HandleItemAsync(); // If a game, add to list if (foundItem is GameFinderResult game) { addedGames.Add(game.Game); } } // Show message if new games were found if (foundItems.Count > 0) { // Split into found games and items and sort var gameFinderResults = foundItems.OfType <GameFinderResult>().OrderBy(x => x.Game).Select(x => x.DisplayName); var finderResults = foundItems.OfType <FinderResult>().OrderBy(x => x.DisplayName).Select(x => x.DisplayName); await Services.MessageUI.DisplayMessageAsync($"{Resources.GameFinder_GamesFound}{Environment.NewLine}{Environment.NewLine}• {gameFinderResults.Concat(finderResults).JoinItems(Environment.NewLine + "• ")}", Resources.GameFinder_GamesFoundHeader, MessageType.Success); RL.Logger?.LogInformationSource($"The game finder found the following games {foundItems.JoinItems(", ", x => x.ToString())}"); return(true); } } catch (Exception ex) { ex.HandleError("Game finder"); await Services.MessageUI.DisplayExceptionMessageAsync(ex, Resources.GameFinder_Error); } finally { // Refresh if any games were added if (addedGames.Any()) { await OnRefreshRequiredAsync(new RefreshRequiredEventArgs(addedGames, true, false, false, false)); } IsGameFinderRunning = false; } return(false); }
public IEnumerable<IGame> GetGames() { var command = new GetGames(); _executer.Execute(command); return command.Result; }