From 1e961a594577d490269acce56f4e6a1907bdd900 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Tue, 8 Mar 2016 03:18:50 +0100 Subject: [PATCH] Add CustomGamePlayedWhileIdle --- ArchiSteamFarm/ArchiHandler.cs | 23 ++++++++++++++++++++++- ArchiSteamFarm/Bot.cs | 4 ++-- ArchiSteamFarm/BotConfig.cs | 3 +++ ArchiSteamFarm/config/example.json | 1 + 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ArchiSteamFarm/ArchiHandler.cs b/ArchiSteamFarm/ArchiHandler.cs index 68582db1d..4e9a71e30 100644 --- a/ArchiSteamFarm/ArchiHandler.cs +++ b/ArchiSteamFarm/ArchiHandler.cs @@ -180,6 +180,27 @@ namespace ArchiSteamFarm { Client.Send(request); } + internal void PlayGame(string gameName) { + if (!Client.IsConnected) { + return; + } + + var request = new ClientMsgProtobuf(EMsg.ClientGamesPlayed); + + var gamePlayed = new CMsgClientGamesPlayed.GamePlayed(); + if (!string.IsNullOrEmpty(gameName)) { + gamePlayed.game_id = new GameID() { + AppType = GameID.GameType.Shortcut, + ModID = uint.MaxValue + }; + gamePlayed.game_extra_info = gameName; + } + + request.Body.games_played.Add(gamePlayed); + + Client.Send(request); + } + internal void PlayGames(params uint[] gameIDs) { if (!Client.IsConnected) { return; @@ -200,7 +221,7 @@ namespace ArchiSteamFarm { } internal void PlayGames(ICollection gameIDs) { - if (gameIDs == null || gameIDs.Count == 0 || !Client.IsConnected) { + if (gameIDs == null || !Client.IsConnected) { return; } diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs index dbcbf0e88..d453ffcc4 100755 --- a/ArchiSteamFarm/Bot.cs +++ b/ArchiSteamFarm/Bot.cs @@ -278,8 +278,8 @@ namespace ArchiSteamFarm { } internal void ResetGamesPlayed() { - if (BotConfig.GamesPlayedWhileIdle.Contains(0)) { - ArchiHandler.PlayGames(0); + if (!string.IsNullOrEmpty(BotConfig.CustomGamePlayedWhileIdle)) { + ArchiHandler.PlayGame(BotConfig.CustomGamePlayedWhileIdle); } else { ArchiHandler.PlayGames(BotConfig.GamesPlayedWhileIdle); } diff --git a/ArchiSteamFarm/BotConfig.cs b/ArchiSteamFarm/BotConfig.cs index e2f6d7af5..641e98b9f 100644 --- a/ArchiSteamFarm/BotConfig.cs +++ b/ArchiSteamFarm/BotConfig.cs @@ -87,6 +87,9 @@ namespace ArchiSteamFarm { [JsonProperty(Required = Required.DisallowNull)] internal byte SendTradePeriod { get; private set; } = 0; + [JsonProperty] + internal string CustomGamePlayedWhileIdle { get; private set; } = null; + [JsonProperty(Required = Required.DisallowNull)] internal HashSet GamesPlayedWhileIdle { get; private set; } = new HashSet() { 0 }; diff --git a/ArchiSteamFarm/config/example.json b/ArchiSteamFarm/config/example.json index 7f623ce03..97b248f57 100644 --- a/ArchiSteamFarm/config/example.json +++ b/ArchiSteamFarm/config/example.json @@ -18,6 +18,7 @@ "SendOnFarmingFinished": false, "SteamTradeToken": null, "SendTradePeriod": 0, + "CustomGamePlayedWhileIdle": null, "GamesPlayedWhileIdle": [ 0 ],