diff --git a/ArchiSteamFarm/CardsFarmer.cs b/ArchiSteamFarm/CardsFarmer.cs index b0b139435..735f82875 100755 --- a/ArchiSteamFarm/CardsFarmer.cs +++ b/ArchiSteamFarm/CardsFarmer.cs @@ -33,9 +33,6 @@ using System.Threading.Tasks; namespace ArchiSteamFarm { internal sealed class CardsFarmer { - private const byte StatusCheckSleep = 5; // In minutes, how long to wait before checking the appID again - private const ushort MaxFarmingTime = 600; // In minutes, how long ASF is allowed to farm one game in solo mode - internal readonly ConcurrentDictionary GamesToFarm = new ConcurrentDictionary(); internal readonly List CurrentGamesFarming = new List(); @@ -428,9 +425,9 @@ namespace ArchiSteamFarm { bool success = true; bool? keepFarming = await ShouldFarm(appID).ConfigureAwait(false); - for (ushort farmingTime = 0; farmingTime <= MaxFarmingTime && (!keepFarming.HasValue || keepFarming.Value); farmingTime += StatusCheckSleep) { + for (ushort farmingTime = 0; farmingTime <= 60 * Program.GlobalConfig.MaxFarmingTime && keepFarming.GetValueOrDefault(true); farmingTime += Program.GlobalConfig.FarmingDelay) { Logging.LogGenericInfo("Still farming: " + appID, Bot.BotName); - if (FarmResetEvent.WaitOne(1000 * 60 * StatusCheckSleep)) { + if (FarmResetEvent.WaitOne(60 * 1000 * Program.GlobalConfig.FarmingDelay)) { success = false; break; } @@ -452,13 +449,13 @@ namespace ArchiSteamFarm { bool success = true; while (maxHour < 2) { Logging.LogGenericInfo("Still farming: " + string.Join(", ", appIDs), Bot.BotName); - if (FarmResetEvent.WaitOne(1000 * 60 * StatusCheckSleep)) { + if (FarmResetEvent.WaitOne(60 * 1000 * Program.GlobalConfig.FarmingDelay)) { success = false; break; } // Don't forget to update our GamesToFarm hours - float timePlayed = StatusCheckSleep / 60.0F; + float timePlayed = Program.GlobalConfig.FarmingDelay / 60.0F; foreach (KeyValuePair gameToFarm in GamesToFarm) { if (!appIDs.Contains(gameToFarm.Key)) { continue; diff --git a/ArchiSteamFarm/GlobalConfig.cs b/ArchiSteamFarm/GlobalConfig.cs index d46216dfa..753d6e9d2 100644 --- a/ArchiSteamFarm/GlobalConfig.cs +++ b/ArchiSteamFarm/GlobalConfig.cs @@ -48,7 +48,10 @@ namespace ArchiSteamFarm { internal EUpdateChannel UpdateChannel { get; private set; } = GlobalConfig.EUpdateChannel.Stable; [JsonProperty(Required = Required.DisallowNull)] - internal byte HttpTimeout { get; private set; } = 30; + internal byte MaxFarmingTime { get; private set; } = 10; + + [JsonProperty(Required = Required.DisallowNull)] + internal byte FarmingDelay { get; private set; } = 5; [JsonProperty(Required = Required.DisallowNull)] internal byte AccountPlayingDelay { get; private set; } = 5; @@ -59,6 +62,9 @@ namespace ArchiSteamFarm { [JsonProperty(Required = Required.DisallowNull)] internal byte InventoryLimiterDelay { get; private set; } = 3; + [JsonProperty(Required = Required.DisallowNull)] + internal byte HttpTimeout { get; private set; } = 30; + [JsonProperty(Required = Required.DisallowNull)] internal string WCFHostname { get; private set; } = "localhost"; diff --git a/ArchiSteamFarm/config/ASF.json b/ArchiSteamFarm/config/ASF.json index 8a4c691ac..7811917bd 100644 --- a/ArchiSteamFarm/config/ASF.json +++ b/ArchiSteamFarm/config/ASF.json @@ -2,10 +2,12 @@ "Debug": false, "AutoUpdates": true, "UpdateChannel": 1, - "HttpTimeout": 30, + "MaxFarmingTime": 10, + "FarmingDelay": 5, "AccountPlayingDelay": 5, "LoginLimiterDelay": 7, "InventoryLimiterDelay": 3, + "HttpTimeout": 30, "WCFHostname": "localhost", "WCFPort": 1242, "Statistics": true,