From 6bc715575ffaa3bb76143f5defe119173afb4780 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Sun, 28 Feb 2016 04:15:52 +0100 Subject: [PATCH] Add GamesPlayedWhileIdle, closes #121 --- ArchiSteamFarm/Bot.cs | 19 ++++++++++++++++++- ArchiSteamFarm/CardsFarmer.cs | 4 ++-- ArchiSteamFarm/config/example.xml | 6 ++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs index f6f44f2b7..07c04bd90 100755 --- a/ArchiSteamFarm/Bot.cs +++ b/ArchiSteamFarm/Bot.cs @@ -85,6 +85,7 @@ namespace ArchiSteamFarm { internal string SteamTradeToken { get; private set; } = "null"; internal byte SendTradePeriod { get; private set; } = 0; internal HashSet Blacklist { get; } = new HashSet(); + internal HashSet GamesPlayedWhileIdle { get; } = new HashSet() { 0 }; internal bool Statistics { get; private set; } = true; private bool InvalidPassword = false; @@ -245,6 +246,14 @@ namespace ArchiSteamFarm { } } + internal void ResetGamesPlayed() { + if (GamesPlayedWhileIdle.Contains(0)) { + ArchiHandler.PlayGames(0); + } else { + ArchiHandler.PlayGames(GamesPlayedWhileIdle); + } + } + internal async Task Restart() { Stop(); await Utilities.SleepAsync(500).ConfigureAwait(false); @@ -710,7 +719,7 @@ namespace ArchiSteamFarm { if (gameIDs.Contains(0)) { if (await CardsFarmer.SwitchToManualMode(false).ConfigureAwait(false)) { - ArchiHandler.PlayGames(0); + ResetGamesPlayed(); } } else { await CardsFarmer.SwitchToManualMode(true).ConfigureAwait(false); @@ -1173,6 +1182,8 @@ namespace ArchiSteamFarm { await SteamFriends.SetPersonaName(SteamNickname); } + ResetGamesPlayed(); + if (SteamParentalPIN.Equals("null")) { SteamParentalPIN = Program.GetUserInput(BotName, Program.EUserInputType.SteamParentalPIN); } @@ -1396,6 +1407,12 @@ namespace ArchiSteamFarm { Blacklist.Add(uint.Parse(appID)); } break; + case "GamesPlayedWhileIdle": + GamesPlayedWhileIdle.Clear(); + foreach (string appID in value.Split(',')) { + GamesPlayedWhileIdle.Add(uint.Parse(appID)); + } + break; case "Statistics": Statistics = bool.Parse(value); break; diff --git a/ArchiSteamFarm/CardsFarmer.cs b/ArchiSteamFarm/CardsFarmer.cs index 06cc4d070..042bc7b93 100755 --- a/ArchiSteamFarm/CardsFarmer.cs +++ b/ArchiSteamFarm/CardsFarmer.cs @@ -426,7 +426,7 @@ namespace ArchiSteamFarm { keepFarming = await ShouldFarm(appID).ConfigureAwait(false); } - Bot.ArchiHandler.PlayGames(0); + Bot.ResetGamesPlayed(); Logging.LogGenericInfo("Stopped farming: " + appID, Bot.BotName); return success; } @@ -459,7 +459,7 @@ namespace ArchiSteamFarm { maxHour += timePlayed; } - Bot.ArchiHandler.PlayGames(0); + Bot.ResetGamesPlayed(); Logging.LogGenericInfo("Stopped farming: " + string.Join(", ", appIDs), Bot.BotName); return success; } diff --git a/ArchiSteamFarm/config/example.xml b/ArchiSteamFarm/config/example.xml index 32c64cee2..e7063911b 100755 --- a/ArchiSteamFarm/config/example.xml +++ b/ArchiSteamFarm/config/example.xml @@ -144,6 +144,12 @@ + + + + + +