diff --git a/ArchiSteamFarm/ArchiWebHandler.cs b/ArchiSteamFarm/ArchiWebHandler.cs index 8372add94..97632fae4 100644 --- a/ArchiSteamFarm/ArchiWebHandler.cs +++ b/ArchiSteamFarm/ArchiWebHandler.cs @@ -34,7 +34,7 @@ using System.Threading.Tasks; namespace ArchiSteamFarm { internal class ArchiWebHandler { - private const uint Timeout = 1000 * WebBrowser.HttpTimeout; // In miliseconds + private const int Timeout = 1000 * WebBrowser.HttpTimeout; // In miliseconds private readonly Bot Bot; private readonly string ApiKey; diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs index 740341dc5..defdf06dc 100755 --- a/ArchiSteamFarm/Bot.cs +++ b/ArchiSteamFarm/Bot.cs @@ -67,6 +67,24 @@ namespace ArchiSteamFarm { internal HashSet Blacklist { get; private set; } = new HashSet { 303700, 335590, 368020 }; internal bool Statistics { get; private set; } = true; + private static bool IsValidCdKey(string key) { + if (string.IsNullOrEmpty(key)) { + return false; + } + + if (key.Length != 17 && key.Length != 29) { + return false; + } + + for (byte i = 5; i < key.Length; i += 6) { + if (key[i] != '-') { + return false; + } + } + + return true; + } + internal static int GetRunningBotsCount() { return Bots.Count; } @@ -429,7 +447,7 @@ namespace ArchiSteamFarm { return; } - if (message.Length == 17 && message[5] == '-' && message[11] == '-') { + if (IsValidCdKey(message)) { ArchiHandler.RedeemKey(message); return; }