diff --git a/ArchiSteamFarm/ArchiHandler.cs b/ArchiSteamFarm/ArchiHandler.cs index b01a6587b..f79df9e88 100644 --- a/ArchiSteamFarm/ArchiHandler.cs +++ b/ArchiSteamFarm/ArchiHandler.cs @@ -215,34 +215,15 @@ namespace ArchiSteamFarm { Client.Send(logon); } - internal void PlayGame(string gameName) { + internal void PlayGame(uint gameID, string gameName = null) { if (!Client.IsConnected) { return; } - ClientMsgProtobuf request = new ClientMsgProtobuf(EMsg.ClientGamesPlayed); - if (!string.IsNullOrEmpty(gameName)) { - request.Body.games_played.Add(new CMsgClientGamesPlayed.GamePlayed { - game_extra_info = gameName, - game_id = new GameID { - AppType = GameID.GameType.Shortcut, - ModID = uint.MaxValue - } - }); - } - - Client.Send(request); + PlayGames(new List { gameID }, gameName); } - internal void PlayGames(uint gameID) { - if (!Client.IsConnected) { - return; - } - - PlayGames(new HashSet { gameID }); - } - - internal void PlayGames(ICollection gameIDs) { + internal void PlayGames(ICollection gameIDs, string gameName = null) { if (gameIDs == null) { Logging.LogNullError(nameof(gameIDs), Bot.BotName); return; @@ -253,6 +234,17 @@ namespace ArchiSteamFarm { } ClientMsgProtobuf request = new ClientMsgProtobuf(EMsg.ClientGamesPlayed); + + if (!string.IsNullOrEmpty(gameName)) { + request.Body.games_played.Add(new CMsgClientGamesPlayed.GamePlayed { + game_extra_info = gameName, + game_id = new GameID { + AppType = GameID.GameType.Shortcut, + ModID = uint.MaxValue + } + }); + } + foreach (uint gameID in gameIDs.Where(gameID => gameID != 0)) { request.Body.games_played.Add(new CMsgClientGamesPlayed.GamePlayed { game_id = new GameID(gameID) diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs index afa2cd319..dfbc9045d 100755 --- a/ArchiSteamFarm/Bot.cs +++ b/ArchiSteamFarm/Bot.cs @@ -1473,11 +1473,7 @@ namespace ArchiSteamFarm { return; } - if (!string.IsNullOrEmpty(BotConfig.CustomGamePlayedWhileIdle)) { - ArchiHandler.PlayGame(BotConfig.CustomGamePlayedWhileIdle); - } else { - ArchiHandler.PlayGames(BotConfig.GamesPlayedWhileIdle); - } + ArchiHandler.PlayGames(BotConfig.GamesPlayedWhileIdle, BotConfig.CustomGamePlayedWhileIdle); } private async void OnConnected(SteamClient.ConnectedCallback callback) { diff --git a/ArchiSteamFarm/BotConfig.cs b/ArchiSteamFarm/BotConfig.cs index d58688d6e..c6c21c27b 100644 --- a/ArchiSteamFarm/BotConfig.cs +++ b/ArchiSteamFarm/BotConfig.cs @@ -103,11 +103,14 @@ namespace ArchiSteamFarm { [JsonProperty(Required = Required.DisallowNull)] internal byte AcceptConfirmationsPeriod { get; private set; } = 0; + [JsonProperty] + internal string CustomGamePlayedWhileFarming { get; private set; } = null; + [JsonProperty] internal string CustomGamePlayedWhileIdle { get; private set; } = null; [JsonProperty(Required = Required.DisallowNull)] - internal HashSet GamesPlayedWhileIdle { get; private set; } = new HashSet { 0 }; + internal HashSet GamesPlayedWhileIdle { get; private set; } = new HashSet(); internal static BotConfig Load(string filePath) { diff --git a/ArchiSteamFarm/CardsFarmer.cs b/ArchiSteamFarm/CardsFarmer.cs index 88d8f69ff..bf7fb6f98 100755 --- a/ArchiSteamFarm/CardsFarmer.cs +++ b/ArchiSteamFarm/CardsFarmer.cs @@ -480,7 +480,7 @@ namespace ArchiSteamFarm { return false; } - Bot.ArchiHandler.PlayGames(appID); + Bot.ArchiHandler.PlayGame(appID, Bot.BotConfig.CustomGamePlayedWhileFarming); DateTime endFarmingDate = DateTime.Now.AddHours(Program.GlobalConfig.MaxFarmingTime); bool success = true; @@ -515,7 +515,7 @@ namespace ArchiSteamFarm { return false; } - Bot.ArchiHandler.PlayGames(appIDs); + Bot.ArchiHandler.PlayGames(appIDs, Bot.BotConfig.CustomGamePlayedWhileFarming); bool success = true; while (maxHour < 2) { diff --git a/ArchiSteamFarm/config/example.json b/ArchiSteamFarm/config/example.json index b7c9dec57..53f811afd 100644 --- a/ArchiSteamFarm/config/example.json +++ b/ArchiSteamFarm/config/example.json @@ -22,8 +22,7 @@ "SteamTradeToken": null, "SendTradePeriod": 0, "AcceptConfirmationsPeriod": 0, + "CustomGamePlayedWhileFarming": null, "CustomGamePlayedWhileIdle": null, - "GamesPlayedWhileIdle": [ - 0 - ] + "GamesPlayedWhileIdle": [ ] } \ No newline at end of file diff --git a/ConfigGenerator/BotConfig.cs b/ConfigGenerator/BotConfig.cs index e9ae1ae59..e573b215a 100644 --- a/ConfigGenerator/BotConfig.cs +++ b/ConfigGenerator/BotConfig.cs @@ -111,6 +111,9 @@ namespace ConfigGenerator { [JsonProperty(Required = Required.DisallowNull)] public byte AcceptConfirmationsPeriod { get; set; } = 0; + [JsonProperty] + public string CustomGamePlayedWhileFarming { get; set; } = null; + [JsonProperty] public string CustomGamePlayedWhileIdle { get; set; } = null; @@ -153,7 +156,6 @@ namespace ConfigGenerator { throw new ArgumentNullException(nameof(filePath)); } - GamesPlayedWhileIdle.Add(0); Save(); } }