diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs index c1c811e22..f01f20da9 100755 --- a/ArchiSteamFarm/Bot.cs +++ b/ArchiSteamFarm/Bot.cs @@ -2354,6 +2354,7 @@ namespace ArchiSteamFarm { bool forward = !redeemFlags.HasFlag(ERedeemFlags.SkipForwarding) && (redeemFlags.HasFlag(ERedeemFlags.ForceForwarding) || BotConfig.RedeemingPreferences.HasFlag(BotConfig.ERedeemingPreferences.Forwarding)); bool distribute = !redeemFlags.HasFlag(ERedeemFlags.SkipDistribution) && (redeemFlags.HasFlag(ERedeemFlags.ForceDistribution) || BotConfig.RedeemingPreferences.HasFlag(BotConfig.ERedeemingPreferences.Distributing)); message = message.Replace(",", Environment.NewLine); + bool keepMissingGames = BotConfig.RedeemingPreferences.HasFlag(BotConfig.ERedeemingPreferences.KeepMissingGames); HashSet unusedKeys = new HashSet(); StringBuilder response = new StringBuilder(); @@ -2417,7 +2418,7 @@ namespace ArchiSteamFarm { response.Append(Environment.NewLine + string.Format(Strings.BotRedeemResponse, currentBot.BotName, key, result.PurchaseResultDetail)); } - if (!forward) { + if (!forward || (keepMissingGames && (result.PurchaseResultDetail != EPurchaseResultDetail.AlreadyPurchased))) { key = reader.ReadLine(); // Next key break; // Next bot (if needed) } diff --git a/ArchiSteamFarm/BotConfig.cs b/ArchiSteamFarm/BotConfig.cs index 0bc094fab..2ec845c89 100644 --- a/ArchiSteamFarm/BotConfig.cs +++ b/ArchiSteamFarm/BotConfig.cs @@ -34,7 +34,6 @@ using Newtonsoft.Json; namespace ArchiSteamFarm { [SuppressMessage("ReSharper", "ClassCannotBeInstantiated")] [SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")] - [SuppressMessage("ReSharper", "ConvertToConstant.Local")] [SuppressMessage("ReSharper", "ConvertToConstant.Global")] internal sealed class BotConfig { [JsonProperty(Required = Required.DisallowNull)] @@ -181,15 +180,14 @@ namespace ArchiSteamFarm { [Flags] internal enum ERedeemingPreferences : byte { - [SuppressMessage("ReSharper", "UnusedMember.Global")] None = 0, Forwarding = 1, - Distributing = 2 + Distributing = 2, + KeepMissingGames = 4 } [Flags] internal enum ETradingPreferences : byte { - [SuppressMessage("ReSharper", "UnusedMember.Global")] None = 0, AcceptDonations = 1, SteamTradeMatcher = 2, diff --git a/ConfigGenerator/BotConfig.cs b/ConfigGenerator/BotConfig.cs index 9b82ce285..f68fb6802 100644 --- a/ConfigGenerator/BotConfig.cs +++ b/ConfigGenerator/BotConfig.cs @@ -199,7 +199,8 @@ namespace ConfigGenerator { internal enum ERedeemingPreferences : byte { None = 0, Forwarding = 1, - Distributing = 2 + Distributing = 2, + KeepMissingGames = 4 } [Flags]