From 51ad3b0c76963156736812394faf55eb58671388 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Thu, 19 Nov 2020 21:01:17 +0100 Subject: [PATCH] Improve runtime compatibility This commit does 3 things: - adds safeguard against running generic-netf in unsupported environments - adds notice about providing ASF with unknown command-line arguments - refactors old pre+post args parsing into a single window --- .../Localization/Strings.Designer.cs | 396 +++++++++--------- ArchiSteamFarm/Localization/Strings.resx | 62 +-- ArchiSteamFarm/OS.cs | 70 +++- ArchiSteamFarm/Program.cs | 125 +++--- 4 files changed, 350 insertions(+), 303 deletions(-) diff --git a/ArchiSteamFarm/Localization/Strings.Designer.cs b/ArchiSteamFarm/Localization/Strings.Designer.cs index bb7bfb29f..e00efb51f 100644 --- a/ArchiSteamFarm/Localization/Strings.Designer.cs +++ b/ArchiSteamFarm/Localization/Strings.Designer.cs @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// Ten kod został wygenerowany przez narzędzie. -// Wersja wykonawcza:4.0.30319.42000 +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 // -// Zmiany w tym pliku mogą spowodować nieprawidłowe zachowanie i zostaną utracone, jeśli -// kod zostanie ponownie wygenerowany. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ @@ -13,13 +13,13 @@ namespace ArchiSteamFarm.Localization { /// - /// Klasa zasobu wymagająca zdefiniowania typu do wyszukiwania zlokalizowanych ciągów itd. + /// A strongly-typed resource class, for looking up localized strings, etc. /// - // Ta klasa została automatycznie wygenerowana za pomocą klasy StronglyTypedResourceBuilder - // przez narzędzie, takie jak ResGen lub Visual Studio. - // Aby dodać lub usunąć składową, edytuj plik ResX, a następnie ponownie uruchom narzędzie ResGen - // z opcją /str lub ponownie utwórz projekt VS. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class Strings { @@ -33,7 +33,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Zwraca buforowane wystąpienie ResourceManager używane przez tę klasę. + /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] public static global::System.Resources.ResourceManager ResourceManager { @@ -47,8 +47,8 @@ namespace ArchiSteamFarm.Localization { } /// - /// Przesłania właściwość CurrentUICulture bieżącego wątku dla wszystkich - /// przypadków przeszukiwania zasobów za pomocą tej klasy zasobów wymagającej zdefiniowania typu. + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] public static global::System.Globalization.CultureInfo Culture { @@ -61,7 +61,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Accepting trade: {0}. + /// Looks up a localized string similar to Accepting trade: {0}. /// public static string AcceptingTrade { get { @@ -70,7 +70,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Matching Steam items, round #{0}.... + /// Looks up a localized string similar to Matching Steam items, round #{0}.... /// public static string ActivelyMatchingItems { get { @@ -79,7 +79,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Matched a total of {0} sets this round.. + /// Looks up a localized string similar to Matched a total of {0} sets this round.. /// public static string ActivelyMatchingItemsRound { get { @@ -88,7 +88,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu ASF will automatically check for new versions every {0}.. + /// Looks up a localized string similar to ASF will automatically check for new versions every {0}.. /// public static string AutoUpdateCheckInfo { get { @@ -97,7 +97,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Accepted donation trade: {0}. + /// Looks up a localized string similar to Accepted donation trade: {0}. /// public static string BotAcceptedDonationTrade { get { @@ -106,7 +106,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Accepting gift: {0}.... + /// Looks up a localized string similar to Accepting gift: {0}.... /// public static string BotAcceptingGift { get { @@ -115,7 +115,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Account is no longer occupied: idling process resumed!. + /// Looks up a localized string similar to Account is no longer occupied: idling process resumed!. /// public static string BotAccountFree { get { @@ -124,7 +124,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu This account is limited, idling process is unavailable until the restriction is removed!. + /// Looks up a localized string similar to This account is limited, idling process is unavailable until the restriction is removed!. /// public static string BotAccountLimited { get { @@ -133,7 +133,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu This account is locked, idling process is permanently unavailable!. + /// Looks up a localized string similar to This account is locked, idling process is permanently unavailable!. /// public static string BotAccountLocked { get { @@ -142,7 +142,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Account is currently being used: ASF will resume idling when it's free.... + /// Looks up a localized string similar to Account is currently being used: ASF will resume idling when it's free.... /// public static string BotAccountOccupied { get { @@ -151,7 +151,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu ID: {0} | Status: {1}. + /// Looks up a localized string similar to ID: {0} | Status: {1}. /// public static string BotAddLicense { get { @@ -160,7 +160,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu ID: {0} | Status: {1} | Items: {2}. + /// Looks up a localized string similar to ID: {0} | Status: {1} | Items: {2}. /// public static string BotAddLicenseWithItems { get { @@ -169,7 +169,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu This bot is already running!. + /// Looks up a localized string similar to This bot is already running!. /// public static string BotAlreadyRunning { get { @@ -178,7 +178,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu This bot has already stopped!. + /// Looks up a localized string similar to This bot has already stopped!. /// public static string BotAlreadyStopped { get { @@ -187,7 +187,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Converting .maFile into ASF format.... + /// Looks up a localized string similar to Converting .maFile into ASF format.... /// public static string BotAuthenticatorConverting { get { @@ -196,7 +196,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Successfully finished importing mobile authenticator!. + /// Looks up a localized string similar to Successfully finished importing mobile authenticator!. /// public static string BotAuthenticatorImportFinished { get { @@ -205,7 +205,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu 2FA Token: {0}. + /// Looks up a localized string similar to 2FA Token: {0}. /// public static string BotAuthenticatorToken { get { @@ -214,7 +214,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Automatic idling has paused!. + /// Looks up a localized string similar to Automatic idling has paused!. /// public static string BotAutomaticIdlingNowPaused { get { @@ -223,7 +223,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Automatic idling has resumed!. + /// Looks up a localized string similar to Automatic idling has resumed!. /// public static string BotAutomaticIdlingNowResumed { get { @@ -232,7 +232,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Automatic idling is paused already!. + /// Looks up a localized string similar to Automatic idling is paused already!. /// public static string BotAutomaticIdlingPausedAlready { get { @@ -241,7 +241,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Automatic idling is resumed already!. + /// Looks up a localized string similar to Automatic idling is resumed already!. /// public static string BotAutomaticIdlingResumedAlready { get { @@ -250,7 +250,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Connected to Steam!. + /// Looks up a localized string similar to Connected to Steam!. /// public static string BotConnected { get { @@ -259,7 +259,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Connecting.... + /// Looks up a localized string similar to Connecting.... /// public static string BotConnecting { get { @@ -268,7 +268,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Connection to Steam Network lost. Reconnecting.... + /// Looks up a localized string similar to Connection to Steam Network lost. Reconnecting.... /// public static string BotConnectionLost { get { @@ -277,7 +277,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Disconnected from Steam!. + /// Looks up a localized string similar to Disconnected from Steam!. /// public static string BotDisconnected { get { @@ -286,7 +286,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Disconnecting.... + /// Looks up a localized string similar to Disconnecting.... /// public static string BotDisconnecting { get { @@ -295,7 +295,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu [{0}] password: {1}. + /// Looks up a localized string similar to [{0}] password: {1}. /// public static string BotEncryptedPassword { get { @@ -304,7 +304,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Waiting up to {0} to ensure that we're free to start idling.... + /// Looks up a localized string similar to Waiting up to {0} to ensure that we're free to start idling.... /// public static string BotExtraIdlingCooldown { get { @@ -313,7 +313,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot has {0} games remaining in its background queue.. + /// Looks up a localized string similar to Bot has {0} games remaining in its background queue.. /// public static string BotGamesToRedeemInBackgroundCount { get { @@ -322,7 +322,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Generating Steam parental code, this can take a while, consider putting it in the config instead.... + /// Looks up a localized string similar to Generating Steam parental code, this can take a while, consider putting it in the config instead.... /// public static string BotGeneratingSteamParentalCode { get { @@ -331,7 +331,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Successfully handled {0} confirmations!. + /// Looks up a localized string similar to Successfully handled {0} confirmations!. /// public static string BotHandledConfirmations { get { @@ -340,7 +340,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot has no wallet.. + /// Looks up a localized string similar to Bot has no wallet.. /// public static string BotHasNoWallet { get { @@ -349,7 +349,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Failed to disconnect the client. Abandoning this bot instance!. + /// Looks up a localized string similar to Failed to disconnect the client. Abandoning this bot instance!. /// public static string BotHeartBeatFailed { get { @@ -358,7 +358,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Not starting this bot instance because it's disabled in config file!. + /// Looks up a localized string similar to Not starting this bot instance because it's disabled in config file!. /// public static string BotInstanceNotStartingBecauseDisabled { get { @@ -367,7 +367,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Received TwoFactorCodeMismatch error code {0} times in a row. Either your 2FA credentials are no longer valid, or your clock is out of sync, aborting!. + /// Looks up a localized string similar to Received TwoFactorCodeMismatch error code {0} times in a row. Either your 2FA credentials are no longer valid, or your clock is out of sync, aborting!. /// public static string BotInvalidAuthenticatorDuringLogin { get { @@ -376,7 +376,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Received InvalidPassword error code {0} times in a row. Your password for this account is most likely wrong, aborting!. + /// Looks up a localized string similar to Received InvalidPassword error code {0} times in a row. Your password for this account is most likely wrong, aborting!. /// public static string BotInvalidPasswordDuringLogin { get { @@ -385,7 +385,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot has level {0}.. + /// Looks up a localized string similar to Bot has level {0}.. /// public static string BotLevel { get { @@ -394,7 +394,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Logged off of Steam: {0}. + /// Looks up a localized string similar to Logged off of Steam: {0}. /// public static string BotLoggedOff { get { @@ -403,7 +403,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Successfully logged on as {0}.. + /// Looks up a localized string similar to Successfully logged on as {0}.. /// public static string BotLoggedOn { get { @@ -412,7 +412,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Logging in.... + /// Looks up a localized string similar to Logging in.... /// public static string BotLoggingIn { get { @@ -421,7 +421,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu This account seems to be used in another ASF instance, which is undefined behaviour, refusing to keep it running!. + /// Looks up a localized string similar to This account seems to be used in another ASF instance, which is undefined behaviour, refusing to keep it running!. /// public static string BotLogonSessionReplaced { get { @@ -430,7 +430,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Trade offer failed!. + /// Looks up a localized string similar to Trade offer failed!. /// public static string BotLootingFailed { get { @@ -439,7 +439,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Trade couldn't be sent because there is no user with master permission defined!. + /// Looks up a localized string similar to Trade couldn't be sent because there is no user with master permission defined!. /// public static string BotLootingMasterNotDefined { get { @@ -448,7 +448,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Trade offer sent successfully!. + /// Looks up a localized string similar to Trade offer sent successfully!. /// public static string BotLootingSuccess { get { @@ -457,7 +457,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu This bot doesn't have ASF 2FA enabled! Did you forget to import your authenticator as ASF 2FA?. + /// Looks up a localized string similar to This bot doesn't have ASF 2FA enabled! Did you forget to import your authenticator as ASF 2FA?. /// public static string BotNoASFAuthenticator { get { @@ -466,7 +466,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu This bot instance is not connected!. + /// Looks up a localized string similar to This bot instance is not connected!. /// public static string BotNotConnected { get { @@ -475,7 +475,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Couldn't find any bot named {0}!. + /// Looks up a localized string similar to Couldn't find any bot named {0}!. /// public static string BotNotFound { get { @@ -484,7 +484,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Not owned yet: {0}. + /// Looks up a localized string similar to Not owned yet: {0}. /// public static string BotNotOwnedYet { get { @@ -493,7 +493,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Owned already: {0}. + /// Looks up a localized string similar to Owned already: {0}. /// public static string BotOwnedAlready { get { @@ -502,7 +502,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Owned already: {0} | {1}. + /// Looks up a localized string similar to Owned already: {0} | {1}. /// public static string BotOwnedAlreadyWithName { get { @@ -511,7 +511,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu {0}/{1} bots already own game {2}.. + /// Looks up a localized string similar to {0}/{1} bots already own game {2}.. /// public static string BotOwnsOverviewPerGame { get { @@ -520,7 +520,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Rate limit exceeded, we will retry after {0} of cooldown.... + /// Looks up a localized string similar to Rate limit exceeded, we will retry after {0} of cooldown.... /// public static string BotRateLimitExceeded { get { @@ -529,7 +529,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Reconnecting.... + /// Looks up a localized string similar to Reconnecting.... /// public static string BotReconnecting { get { @@ -538,7 +538,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Key: {0} | Status: {1}. + /// Looks up a localized string similar to Key: {0} | Status: {1}. /// public static string BotRedeem { get { @@ -547,7 +547,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Key: {0} | Status: {1} | Items: {2}. + /// Looks up a localized string similar to Key: {0} | Status: {1} | Items: {2}. /// public static string BotRedeemWithItems { get { @@ -556,7 +556,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Refreshing packages data.... + /// Looks up a localized string similar to Refreshing packages data.... /// public static string BotRefreshingPackagesData { get { @@ -565,7 +565,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Removed expired login key!. + /// Looks up a localized string similar to Removed expired login key!. /// public static string BotRemovedExpiredLoginKey { get { @@ -574,7 +574,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu You can't send trade to yourself!. + /// Looks up a localized string similar to You can't send trade to yourself!. /// public static string BotSendingTradeToYourself { get { @@ -583,7 +583,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Current memory usage: {0} MB. + /// Looks up a localized string similar to Current memory usage: {0} MB. ///Process uptime: {1}. /// public static string BotStats { @@ -593,7 +593,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot is connecting to Steam network.. + /// Looks up a localized string similar to Bot is connecting to Steam network.. /// public static string BotStatusConnecting { get { @@ -602,7 +602,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot is idling game: {0} ({1}, {2} card drops remaining) from a total of {3} games ({4} cards) left to idle (~{5} remaining).. + /// Looks up a localized string similar to Bot is idling game: {0} ({1}, {2} card drops remaining) from a total of {3} games ({4} cards) left to idle (~{5} remaining).. /// public static string BotStatusIdling { get { @@ -611,7 +611,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot is idling games: {0} from a total of {1} games ({2} cards) left to idle (~{3} remaining).. + /// Looks up a localized string similar to Bot is idling games: {0} from a total of {1} games ({2} cards) left to idle (~{3} remaining).. /// public static string BotStatusIdlingList { get { @@ -620,7 +620,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot is limited and can't drop any cards through idling.. + /// Looks up a localized string similar to Bot is limited and can't drop any cards through idling.. /// public static string BotStatusLimited { get { @@ -629,7 +629,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot is locked and can't drop any cards through idling.. + /// Looks up a localized string similar to Bot is locked and can't drop any cards through idling.. /// public static string BotStatusLocked { get { @@ -638,7 +638,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot is not idling anything.. + /// Looks up a localized string similar to Bot is not idling anything.. /// public static string BotStatusNotIdling { get { @@ -647,7 +647,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot is not running.. + /// Looks up a localized string similar to Bot is not running.. /// public static string BotStatusNotRunning { get { @@ -656,7 +656,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu There are {0}/{1} bots running, with total of {2} games ({3} cards) left to idle.. + /// Looks up a localized string similar to There are {0}/{1} bots running, with total of {2} games ({3} cards) left to idle.. /// public static string BotStatusOverview { get { @@ -665,7 +665,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot is paused or running in manual mode.. + /// Looks up a localized string similar to Bot is paused or running in manual mode.. /// public static string BotStatusPaused { get { @@ -674,7 +674,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Bot is currently being used.. + /// Looks up a localized string similar to Bot is currently being used.. /// public static string BotStatusPlayingNotAvailable { get { @@ -683,7 +683,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Could not initialize SteamDirectory: connecting with Steam Network might take much longer than usual!. + /// Looks up a localized string similar to Could not initialize SteamDirectory: connecting with Steam Network might take much longer than usual!. /// public static string BotSteamDirectoryInitializationFailed { get { @@ -692,7 +692,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Stopping.... + /// Looks up a localized string similar to Stopping.... /// public static string BotStopping { get { @@ -701,7 +701,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu The trade offer {0} is determined to be {1} due to {2}.. + /// Looks up a localized string similar to The trade offer {0} is determined to be {1} due to {2}.. /// public static string BotTradeOfferResult { get { @@ -710,7 +710,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Unable to login to Steam: {0}/{1}. + /// Looks up a localized string similar to Unable to login to Steam: {0}/{1}. /// public static string BotUnableToLogin { get { @@ -719,7 +719,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu {0} V{1}. + /// Looks up a localized string similar to {0} V{1}. /// public static string BotVersion { get { @@ -728,7 +728,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Wallet balance: {0} {1}. + /// Looks up a localized string similar to Wallet balance: {0} {1}. /// public static string BotWalletBalance { get { @@ -737,7 +737,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Checking first badge page.... + /// Looks up a localized string similar to Checking first badge page.... /// public static string CheckingFirstBadgePage { get { @@ -746,7 +746,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Checking other badge pages.... + /// Looks up a localized string similar to Checking other badge pages.... /// public static string CheckingOtherBadgePages { get { @@ -755,7 +755,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Chosen idling algorithm: {0}. + /// Looks up a localized string similar to Chosen idling algorithm: {0}. /// public static string ChosenFarmingAlgorithm { get { @@ -764,7 +764,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Clearing Steam discovery queue #{0}.... + /// Looks up a localized string similar to Clearing Steam discovery queue #{0}.... /// public static string ClearingDiscoveryQueue { get { @@ -773,7 +773,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Content: + /// Looks up a localized string similar to Content: ///{0}. /// public static string Content { @@ -783,7 +783,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Done!. + /// Looks up a localized string similar to Done!. /// public static string Done { get { @@ -792,7 +792,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Done matching Steam items, round #{0}.. + /// Looks up a localized string similar to Done matching Steam items, round #{0}.. /// public static string DoneActivelyMatchingItems { get { @@ -801,7 +801,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Done clearing Steam discovery queue #{0}.. + /// Looks up a localized string similar to Done clearing Steam discovery queue #{0}.. /// public static string DoneClearingDiscoveryQueue { get { @@ -810,7 +810,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Enter command: . + /// Looks up a localized string similar to Enter command: . /// public static string EnterCommand { get { @@ -819,7 +819,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Aborted!. + /// Looks up a localized string similar to Aborted!. /// public static string ErrorAborted { get { @@ -828,7 +828,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Access denied!. + /// Looks up a localized string similar to Access denied!. /// public static string ErrorAccessDenied { get { @@ -837,7 +837,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Your bot config is invalid. Please verify content of {0} and try again!. + /// Looks up a localized string similar to Your bot config is invalid. Please verify content of {0} and try again!. /// public static string ErrorBotConfigInvalid { get { @@ -846,7 +846,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Configured {0} property is invalid: {1}. + /// Looks up a localized string similar to Configured {0} property is invalid: {1}. /// public static string ErrorConfigPropertyInvalid { get { @@ -855,7 +855,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Persistent database could not be loaded, if issue persists, please remove {0} in order to recreate the database!. + /// Looks up a localized string similar to Persistent database could not be loaded, if issue persists, please remove {0} in order to recreate the database!. /// public static string ErrorDatabaseInvalid { get { @@ -864,7 +864,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu ASF V{0} has run into fatal exception before core logging module was even able to initialize!. + /// Looks up a localized string similar to ASF V{0} has run into fatal exception before core logging module was even able to initialize!. /// public static string ErrorEarlyFatalExceptionInfo { get { @@ -873,7 +873,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Exception: {0}() {1} + /// Looks up a localized string similar to Exception: {0}() {1} ///StackTrace: ///{2}. /// @@ -884,7 +884,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Exiting with nonzero error code!. + /// Looks up a localized string similar to Exiting with nonzero error code!. /// public static string ErrorExitingWithNonZeroErrorCode { get { @@ -893,7 +893,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Request failing: {0}. + /// Looks up a localized string similar to Request failing: {0}. /// public static string ErrorFailingRequest { get { @@ -902,7 +902,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu This function is available only in headless mode!. + /// Looks up a localized string similar to This function is available only in headless mode!. /// public static string ErrorFunctionOnlyInHeadlessMode { get { @@ -911,7 +911,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Global config could not be loaded. Make sure that {0} exists and is valid! Follow 'setting up' guide on the wiki if you're confused.. + /// Looks up a localized string similar to Global config could not be loaded. Make sure that {0} exists and is valid! Follow 'setting up' guide on the wiki if you're confused.. /// public static string ErrorGlobalConfigNotLoaded { get { @@ -920,7 +920,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Global config file has been removed!. + /// Looks up a localized string similar to Global config file has been removed!. /// public static string ErrorGlobalConfigRemoved { get { @@ -929,7 +929,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Your provided CurrentCulture is invalid, ASF will keep running with the default one!. + /// Looks up a localized string similar to Your provided CurrentCulture is invalid, ASF will keep running with the default one!. /// public static string ErrorInvalidCurrentCulture { get { @@ -938,7 +938,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu {0} is empty!. + /// Looks up a localized string similar to {0} is empty!. /// public static string ErrorIsEmpty { get { @@ -947,7 +947,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu {0} is invalid!. + /// Looks up a localized string similar to {0} is invalid!. /// public static string ErrorIsInvalid { get { @@ -956,7 +956,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu No bots are defined. Did you forget to configure your ASF?. + /// Looks up a localized string similar to No bots are defined. Did you forget to configure your ASF?. /// public static string ErrorNoBotsDefined { get { @@ -965,7 +965,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu {0} is null!. + /// Looks up a localized string similar to {0} is null!. /// public static string ErrorObjectIsNull { get { @@ -974,7 +974,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Parsing {0} failed!. + /// Looks up a localized string similar to Parsing {0} failed!. /// public static string ErrorParsingObject { get { @@ -983,7 +983,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Request failed after {0} attempts!. + /// Looks up a localized string similar to Request failed after {0} attempts!. /// public static string ErrorRequestFailedTooManyTimes { get { @@ -992,7 +992,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu ASF process is already running for this working directory, aborting!. + /// Looks up a localized string similar to ASF process is already running for this working directory, aborting!. /// public static string ErrorSingleInstanceRequired { get { @@ -1001,7 +1001,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Could not check latest version!. + /// Looks up a localized string similar to Could not check latest version!. /// public static string ErrorUpdateCheckFailed { get { @@ -1010,7 +1010,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Could not proceed with update because there is no asset that relates to currently running version! Automatic update to that version is not possible.. + /// Looks up a localized string similar to Could not proceed with update because there is no asset that relates to currently running version! Automatic update to that version is not possible.. /// public static string ErrorUpdateNoAssetForThisVersion { get { @@ -1019,7 +1019,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Could not proceed with an update because that version doesn't include any assets!. + /// Looks up a localized string similar to Could not proceed with an update because that version doesn't include any assets!. /// public static string ErrorUpdateNoAssets { get { @@ -1028,7 +1028,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Received a request for user input, but process is running in headless mode!. + /// Looks up a localized string similar to Received a request for user input, but process is running in headless mode!. /// public static string ErrorUserInputRunningInHeadlessMode { get { @@ -1037,7 +1037,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Executing.... + /// Looks up a localized string similar to Executing.... /// public static string Executing { get { @@ -1046,7 +1046,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Exiting.... + /// Looks up a localized string similar to Exiting.... /// public static string Exiting { get { @@ -1055,7 +1055,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu We have a total of {0} games ({1} cards) left to idle (~{2} remaining).... + /// Looks up a localized string similar to We have a total of {0} games ({1} cards) left to idle (~{2} remaining).... /// public static string GamesToIdle { get { @@ -1064,7 +1064,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Global config file has been changed!. + /// Looks up a localized string similar to Global config file has been changed!. /// public static string GlobalConfigChanged { get { @@ -1073,7 +1073,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Idling finished!. + /// Looks up a localized string similar to Idling finished!. /// public static string IdlingFinished { get { @@ -1082,7 +1082,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Finished idling: {0} ({1}) after {2} of playtime!. + /// Looks up a localized string similar to Finished idling: {0} ({1}) after {2} of playtime!. /// public static string IdlingFinishedForGame { get { @@ -1091,7 +1091,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Finished idling games: {0}. + /// Looks up a localized string similar to Finished idling games: {0}. /// public static string IdlingFinishedForGames { get { @@ -1100,7 +1100,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Idling {0} ({1}) is temporarily disabled, as ASF is not able to play that game at the moment.. + /// Looks up a localized string similar to Idling {0} ({1}) is temporarily disabled, as ASF is not able to play that game at the moment.. /// public static string IdlingGameNotPossible { get { @@ -1109,7 +1109,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Idling status for {0} ({1}): {2} cards remaining. + /// Looks up a localized string similar to Idling status for {0} ({1}): {2} cards remaining. /// public static string IdlingStatusForGame { get { @@ -1118,7 +1118,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Idling stopped!. + /// Looks up a localized string similar to Idling stopped!. /// public static string IdlingStopped { get { @@ -1127,7 +1127,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Ignoring this request, as permanent pause is enabled!. + /// Looks up a localized string similar to Ignoring this request, as permanent pause is enabled!. /// public static string IgnoredPermanentPauseEnabled { get { @@ -1136,7 +1136,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Ignoring trade: {0}. + /// Looks up a localized string similar to Ignoring trade: {0}. /// public static string IgnoringTrade { get { @@ -1145,7 +1145,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Initializing {0}.... + /// Looks up a localized string similar to Initializing {0}.... /// public static string Initializing { get { @@ -1154,7 +1154,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Interactive console is now active, type 'c' in order to enter command mode.. + /// Looks up a localized string similar to Interactive console is now active, type 'c' in order to enter command mode.. /// public static string InteractiveConsoleEnabled { get { @@ -1163,7 +1163,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Interactive console is not available due to missing {0} config property.. + /// Looks up a localized string similar to Interactive console is not available due to missing {0} config property.. /// public static string InteractiveConsoleNotAvailable { get { @@ -1172,7 +1172,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu IPC config has been changed!. + /// Looks up a localized string similar to IPC config has been changed!. /// public static string IPCConfigChanged { get { @@ -1181,7 +1181,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu IPC server ready!. + /// Looks up a localized string similar to IPC server ready!. /// public static string IPCReady { get { @@ -1190,7 +1190,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Starting IPC server.... + /// Looks up a localized string similar to Starting IPC server.... /// public static string IPCStarting { get { @@ -1199,7 +1199,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Logging in to {0}.... + /// Looks up a localized string similar to Logging in to {0}.... /// public static string LoggingIn { get { @@ -1208,7 +1208,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu No bots are running, exiting.... + /// Looks up a localized string similar to No bots are running, exiting.... /// public static string NoBotsAreRunning { get { @@ -1217,7 +1217,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Nothing found!. + /// Looks up a localized string similar to Nothing found!. /// public static string NothingFound { get { @@ -1226,7 +1226,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu We don't have anything to idle on this account!. + /// Looks up a localized string similar to We don't have anything to idle on this account!. /// public static string NothingToIdle { get { @@ -1235,7 +1235,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Now idling: {0} ({1}). + /// Looks up a localized string similar to Now idling: {0} ({1}). /// public static string NowIdling { get { @@ -1244,7 +1244,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Now idling: {0}. + /// Looks up a localized string similar to Now idling: {0}. /// public static string NowIdlingList { get { @@ -1253,7 +1253,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Playing is currently unavailable, we'll try again later!. + /// Looks up a localized string similar to Playing is currently unavailable, we'll try again later!. /// public static string PlayingNotAvailable { get { @@ -1262,7 +1262,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Please wait.... + /// Looks up a localized string similar to Please wait.... /// public static string PleaseWait { get { @@ -1271,7 +1271,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu {0} has been loaded successfully!. + /// Looks up a localized string similar to {0} has been loaded successfully!. /// public static string PluginLoaded { get { @@ -1280,7 +1280,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Loading {0} V{1}.... + /// Looks up a localized string similar to Loading {0} V{1}.... /// public static string PluginLoading { get { @@ -1289,7 +1289,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu You've loaded one or more of custom plugins into the ASF. Since we're unable to offer a support for modded setups, please reach the appropriate developers of the plugins that you decided to use in case of any issues.. + /// Looks up a localized string similar to You've loaded one or more of custom plugins into the ASF. Since we're unable to offer a support for modded setups, please reach the appropriate developers of the plugins that you decided to use in case of any issues.. /// public static string PluginsWarning { get { @@ -1298,7 +1298,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Refreshing our session!. + /// Looks up a localized string similar to Refreshing our session!. /// public static string RefreshingOurSession { get { @@ -1307,7 +1307,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Rejecting trade: {0}. + /// Looks up a localized string similar to Rejecting trade: {0}. /// public static string RejectingTrade { get { @@ -1316,7 +1316,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Response: {0}. + /// Looks up a localized string similar to Response: {0}. /// public static string Response { get { @@ -1325,7 +1325,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Restarting.... + /// Looks up a localized string similar to Restarting.... /// public static string Restarting { get { @@ -1334,7 +1334,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Result: {0}. + /// Looks up a localized string similar to Result: {0}. /// public static string Result { get { @@ -1343,7 +1343,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Starting.... + /// Looks up a localized string similar to Starting.... /// public static string Starting { get { @@ -1352,7 +1352,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Still idling: {0} ({1}). + /// Looks up a localized string similar to Still idling: {0} ({1}). /// public static string StillIdling { get { @@ -1361,7 +1361,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Still idling: {0}. + /// Looks up a localized string similar to Still idling: {0}. /// public static string StillIdlingList { get { @@ -1370,7 +1370,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Stopped idling: {0} ({1}). + /// Looks up a localized string similar to Stopped idling: {0} ({1}). /// public static string StoppedIdling { get { @@ -1379,7 +1379,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Stopped idling: {0}. + /// Looks up a localized string similar to Stopped idling: {0}. /// public static string StoppedIdlingList { get { @@ -1388,7 +1388,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Success!. + /// Looks up a localized string similar to Success!. /// public static string Success { get { @@ -1397,7 +1397,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Target bot instance is not connected!. + /// Looks up a localized string similar to Target bot instance is not connected!. /// public static string TargetBotNotConnected { get { @@ -1406,7 +1406,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu ASF will attempt to use your preferred {0} culture, but translation in that language was completed only in {1}. Perhaps you could help us improve ASF translation for your language?. + /// Looks up a localized string similar to ASF will attempt to use your preferred {0} culture, but translation in that language was completed only in {1}. Perhaps you could help us improve ASF translation for your language?. /// public static string TranslationIncomplete { get { @@ -1415,7 +1415,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Unknown command!. + /// Looks up a localized string similar to Unknown command!. /// public static string UnknownCommand { get { @@ -1424,7 +1424,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Unlocking parental account.... + /// Looks up a localized string similar to Unlocking parental account.... /// public static string UnlockingParentalAccount { get { @@ -1433,7 +1433,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Unused keys: {0}. + /// Looks up a localized string similar to Unused keys: {0}. /// public static string UnusedKeys { get { @@ -1442,7 +1442,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Checking for new version.... + /// Looks up a localized string similar to Checking for new version.... /// public static string UpdateCheckingNewVersion { get { @@ -1451,7 +1451,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Cleaning up old files after update.... + /// Looks up a localized string similar to Cleaning up old files after update.... /// public static string UpdateCleanup { get { @@ -1460,7 +1460,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Downloading new version: {0} ({1} MB)... While waiting, consider donating if you appreciate the work being done! :). + /// Looks up a localized string similar to Downloading new version: {0} ({1} MB)... While waiting, consider donating if you appreciate the work being done! :). /// public static string UpdateDownloadingNewVersion { get { @@ -1469,7 +1469,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Update process finished!. + /// Looks up a localized string similar to Update process finished!. /// public static string UpdateFinished { get { @@ -1478,7 +1478,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu New ASF version is available! Consider updating yourself!. + /// Looks up a localized string similar to New ASF version is available! Consider updating yourself!. /// public static string UpdateNewVersionAvailable { get { @@ -1487,7 +1487,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Local version: {0} | Remote version: {1}. + /// Looks up a localized string similar to Local version: {0} | Remote version: {1}. /// public static string UpdateVersionInfo { get { @@ -1496,7 +1496,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Please enter your 2FA code from your Steam authenticator app: . + /// Looks up a localized string similar to Please enter your 2FA code from your Steam authenticator app: . /// public static string UserInputSteam2FA { get { @@ -1505,7 +1505,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Please enter SteamGuard auth code that was sent on your e-mail: . + /// Looks up a localized string similar to Please enter SteamGuard auth code that was sent on your e-mail: . /// public static string UserInputSteamGuard { get { @@ -1514,7 +1514,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Please enter your Steam login: . + /// Looks up a localized string similar to Please enter your Steam login: . /// public static string UserInputSteamLogin { get { @@ -1523,7 +1523,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Please enter Steam parental code: . + /// Looks up a localized string similar to Please enter Steam parental code: . /// public static string UserInputSteamParentalCode { get { @@ -1532,7 +1532,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Please enter your Steam password: . + /// Looks up a localized string similar to Please enter your Steam password: . /// public static string UserInputSteamPassword { get { @@ -1541,7 +1541,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Could not get badges' information, we will try again later!. + /// Looks up a localized string similar to Could not get badges' information, we will try again later!. /// public static string WarningCouldNotCheckBadges { get { @@ -1550,7 +1550,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Could not check cards status for: {0} ({1}), we will try again later!. + /// Looks up a localized string similar to Could not check cards status for: {0} ({1}), we will try again later!. /// public static string WarningCouldNotCheckCardsStatus { get { @@ -1559,7 +1559,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Usage of {0} is deprecated and will be removed in future versions of the program. Please use {1} instead.. + /// Looks up a localized string similar to Usage of {0} is deprecated and will be removed in future versions of the program. Please use {1} instead.. /// public static string WarningDeprecated { get { @@ -1568,7 +1568,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu You're running more personal bot accounts than our upper recommended limit ({0}). Be advised that this setup is not supported and might cause various Steam-related issues, including account suspensions. Check out the FAQ for more details.. + /// Looks up a localized string similar to You're running more personal bot accounts than our upper recommended limit ({0}). Be advised that this setup is not supported and might cause various Steam-related issues, including account suspensions. Check out the FAQ for more details.. /// public static string WarningExcessiveBotsCount { get { @@ -1577,7 +1577,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Failed!. + /// Looks up a localized string similar to Failed!. /// public static string WarningFailed { get { @@ -1586,7 +1586,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Failed due to error: {0}. + /// Looks up a localized string similar to Failed due to error: {0}. /// public static string WarningFailedWithError { get { @@ -1595,7 +1595,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu ASF detected ID mismatch for {0} ({1}) and will use ID of {2} instead.. + /// Looks up a localized string similar to ASF detected ID mismatch for {0} ({1}) and will use ID of {2} instead.. /// public static string WarningIdlingGameMismatch { get { @@ -1604,7 +1604,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu You're using a version that is newer than latest released version for your update channel. Please note that pre-release versions are dedicated to users who know how to report bugs, deal with issues and give feedback - no technical support will be given.. + /// Looks up a localized string similar to You're using a version that is newer than latest released version for your update channel. Please note that pre-release versions are dedicated to users who know how to report bugs, deal with issues and give feedback - no technical support will be given.. /// public static string WarningPreReleaseVersion { get { @@ -1613,7 +1613,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Please review our privacy policy section on the wiki if you're concerned about what ASF is in fact doing!. + /// Looks up a localized string similar to Please review our privacy policy section on the wiki if you're concerned about what ASF is in fact doing!. /// public static string WarningPrivacyPolicy { get { @@ -1622,7 +1622,16 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Received unknown value for {0}, please report this: {1}. + /// Looks up a localized string similar to Unknown command-line argument: {0}. + /// + public static string WarningUnknownCommandLineArgument { + get { + return ResourceManager.GetString("WarningUnknownCommandLineArgument", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Received unknown value for {0}, please report this: {1}. /// public static string WarningUnknownValuePleaseReport { get { @@ -1631,7 +1640,16 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu Workaround for {0} bug has been triggered.. + /// Looks up a localized string similar to You're attempting to run {0} variant of ASF in unsupported environment: {1}. Supply --ignore-unsupported-environment argument if you really know what you're doing.. + /// + public static string WarningUnsupportedEnvironment { + get { + return ResourceManager.GetString("WarningUnsupportedEnvironment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Workaround for {0} bug has been triggered.. /// public static string WarningWorkaroundTriggered { get { @@ -1640,7 +1658,7 @@ namespace ArchiSteamFarm.Localization { } /// - /// Wyszukuje zlokalizowany ciąg podobny do ciągu It looks like it's your first launch of the program, welcome!. + /// Looks up a localized string similar to It looks like it's your first launch of the program, welcome!. /// public static string Welcome { get { diff --git a/ArchiSteamFarm/Localization/Strings.resx b/ArchiSteamFarm/Localization/Strings.resx index 5faad51b1..894640dc6 100644 --- a/ArchiSteamFarm/Localization/Strings.resx +++ b/ArchiSteamFarm/Localization/Strings.resx @@ -1,17 +1,17 @@  - @@ -736,4 +736,10 @@ Process uptime: {1} Result: {0} {0} will be replaced by generic result of various functions that use this string - \ No newline at end of file + + You're attempting to run {0} variant of ASF in unsupported environment: {1}. Supply --ignore-unsupported-environment argument if you really know what you're doing. + + + Unknown command-line argument: {0} + + diff --git a/ArchiSteamFarm/OS.cs b/ArchiSteamFarm/OS.cs index 9d88b8a01..785be09a1 100644 --- a/ArchiSteamFarm/OS.cs +++ b/ArchiSteamFarm/OS.cs @@ -40,20 +40,26 @@ namespace ArchiSteamFarm { private static Mutex? SingleInstance; - internal static void CoreInit() { - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && !Console.IsOutputRedirected) { - // Normally we should use UTF-8 encoding as it's the most correct one for our case, and we already use it on other OSes such as Linux - // However, older Windows versions, mainly 7/8.1 can't into UTF-8 without appropriate console font, and expecting from users to change it manually is unwanted - // As irrational as it can sound, those versions actually can work with unicode encoding instead, as they magically map it into proper chars despite of incorrect font - // We could in theory conditionally use UTF-8 for Windows 10+ and unicode otherwise, but Windows version detection is simply not worth the hassle in this case - // Therefore, until we can drop support for Windows < 10, we'll stick with Unicode for all Windows boxes, unless there will be valid reasoning for conditional switch - // See https://github.com/JustArchiNET/ArchiSteamFarm/issues/1289 for more details - Console.OutputEncoding = Encoding.Unicode; + internal static void CoreInit(bool systemRequired) { + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { + if (systemRequired) { + WindowsKeepSystemActive(); + } - // Quick edit mode will freeze when user start selecting something on the console until the selection is cancelled - // Users are very often doing it accidentally without any real purpose, and we want to avoid this common issue which causes the whole process to hang - // See http://stackoverflow.com/questions/30418886/how-and-why-does-quickedit-mode-in-command-prompt-freeze-applications for more details - WindowsDisableQuickEditMode(); + if (!Console.IsOutputRedirected) { + // Normally we should use UTF-8 encoding as it's the most correct one for our case, and we already use it on other OSes such as Linux + // However, older Windows versions, mainly 7/8.1 can't into UTF-8 without appropriate console font, and expecting from users to change it manually is unwanted + // As irrational as it can sound, those versions actually can work with unicode encoding instead, as they magically map it into proper chars despite of incorrect font + // We could in theory conditionally use UTF-8 for Windows 10+ and unicode otherwise, but Windows version detection is simply not worth the hassle in this case + // Therefore, until we can drop support for Windows < 10, we'll stick with Unicode for all Windows boxes, unless there will be valid reasoning for conditional switch + // See https://github.com/JustArchiNET/ArchiSteamFarm/issues/1289 for more details + Console.OutputEncoding = Encoding.Unicode; + + // Quick edit mode will freeze when user start selecting something on the console until the selection is cancelled + // Users are very often doing it accidentally without any real purpose, and we want to avoid this common issue which causes the whole process to hang + // See http://stackoverflow.com/questions/30418886/how-and-why-does-quickedit-mode-in-command-prompt-freeze-applications for more details + WindowsDisableQuickEditMode(); + } } } @@ -67,15 +73,39 @@ namespace ArchiSteamFarm { return new CrossProcessFileBasedSemaphore(resourceName); } - internal static void Init(bool systemRequired, GlobalConfig.EOptimizationMode optimizationMode) { - if (!Enum.IsDefined(typeof(GlobalConfig.EOptimizationMode), optimizationMode)) { - throw new ArgumentNullException(nameof(optimizationMode)); + internal static bool VerifyEnvironment() { +#if NETFRAMEWORK + // This is .NET Framework build, we support that one only on mono for platforms not supported by .NET Core + + // We're not going to analyze source builds, as we don't know what changes the author has made, assume they have a point + if (SharedInfo.BuildInfo.IsCustomBuild) { + return true; } - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { - if (systemRequired) { - WindowsKeepSystemActive(); - } + // All windows variants have valid .NET Core build, and generic-netf is supported only on mono + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) || !RuntimeCompatibility.IsRunningOnMono) { + return false; + } + + return RuntimeInformation.OSArchitecture switch { + // Sadly we can't tell a difference between ARMv6 and ARMv7 reliably, we'll believe that this linux-arm user knows what he's doing and he's indeed in need of generic-netf on ARMv6 + Architecture.Arm => true, + + // Apart from real x86, this also covers all unknown architectures, such as sparc, ppc64, and anything else Mono might support, we're fine with that + Architecture.X86 => true, + + // Everything else is covered by .NET Core + _ => false + }; +#else + // This is .NET Core build, we support all scenarios + return true; +#endif + } + + internal static void Init(GlobalConfig.EOptimizationMode optimizationMode) { + if (!Enum.IsDefined(typeof(GlobalConfig.EOptimizationMode), optimizationMode)) { + throw new ArgumentNullException(nameof(optimizationMode)); } switch (optimizationMode) { diff --git a/ArchiSteamFarm/Program.cs b/ArchiSteamFarm/Program.cs index f4aa8de37..f6f0c4752 100644 --- a/ArchiSteamFarm/Program.cs +++ b/ArchiSteamFarm/Program.cs @@ -45,6 +45,7 @@ namespace ArchiSteamFarm { private static readonly TaskCompletionSource ShutdownResetEvent = new(); + private static bool IgnoreUnsupportedEnvironment; private static bool SystemRequired; internal static async Task Exit(byte exitCode = 0) { @@ -119,38 +120,26 @@ namespace ArchiSteamFarm { Target.Register(HistoryTarget.TargetName); Target.Register(SteamTarget.TargetName); - if (!await InitCore(args).ConfigureAwait(false)) { + if (!await InitCore(args).ConfigureAwait(false) || !await InitASF().ConfigureAwait(false)) { await Exit(1).ConfigureAwait(false); - - return; } - - await InitASF(args).ConfigureAwait(false); } - private static async Task InitASF(IReadOnlyCollection? args) { - OS.CoreInit(); - - Console.Title = SharedInfo.ProgramIdentifier; - ASF.ArchiLogger.LogGenericInfo(SharedInfo.ProgramIdentifier); - + private static async Task InitASF() { if (!await InitGlobalConfigAndLanguage().ConfigureAwait(false)) { - return; + return false; } if (ASF.GlobalConfig == null) { throw new InvalidOperationException(nameof(ASF.GlobalConfig)); } - // Parse post-init args - if (args != null) { - ParsePostInitArgs(args); - } - - OS.Init(SystemRequired, ASF.GlobalConfig.OptimizationMode); + OS.Init(ASF.GlobalConfig.OptimizationMode); await InitGlobalDatabaseAndServices().ConfigureAwait(false); await ASF.Init().ConfigureAwait(false); + + return true; } private static async Task InitCore(IReadOnlyCollection? args) { @@ -173,9 +162,9 @@ namespace ArchiSteamFarm { } } - // Parse pre-init args + // Parse args if (args != null) { - ParsePreInitArgs(args); + ParseArgs(args); } bool uniqueInstance = OS.RegisterProcess(); @@ -188,6 +177,20 @@ namespace ArchiSteamFarm { return false; } + OS.CoreInit(SystemRequired); + + Console.Title = SharedInfo.ProgramIdentifier; + ASF.ArchiLogger.LogGenericInfo(SharedInfo.ProgramIdentifier); + + if (!IgnoreUnsupportedEnvironment) { + if (!OS.VerifyEnvironment()) { + ASF.ArchiLogger.LogGenericError(string.Format(CultureInfo.CurrentCulture, Strings.WarningUnsupportedEnvironment, SharedInfo.BuildInfo.Variant, OS.Variant)); + await Task.Delay(10000).ConfigureAwait(false); + + return false; + } + } + return true; } @@ -413,7 +416,7 @@ namespace ArchiSteamFarm { e.SetObserved(); } - private static void ParsePostInitArgs(IReadOnlyCollection args) { + private static void ParseArgs(IReadOnlyCollection args) { if (args == null) { throw new ArgumentNullException(nameof(args)); } @@ -424,49 +427,7 @@ namespace ArchiSteamFarm { if (!string.IsNullOrEmpty(envCryptKey)) { HandleCryptKeyArgument(envCryptKey!); } - } catch (Exception e) { - ASF.ArchiLogger.LogGenericException(e); - } - bool cryptKeyNext = false; - - foreach (string arg in args) { - switch (arg) { - case "--cryptkey" when !cryptKeyNext: - cryptKeyNext = true; - - break; - case "--no-restart" when !cryptKeyNext: - RestartAllowed = false; - - break; - case "--process-required" when !cryptKeyNext: - ProcessRequired = true; - - break; - case "--system-required" when !cryptKeyNext: - SystemRequired = true; - - break; - default: - if (cryptKeyNext) { - cryptKeyNext = false; - HandleCryptKeyArgument(arg); - } else if ((arg.Length > 11) && arg.StartsWith("--cryptkey=", StringComparison.Ordinal)) { - HandleCryptKeyArgument(arg.Substring(11)); - } - - break; - } - } - } - - private static void ParsePreInitArgs(IReadOnlyCollection args) { - if (args == null) { - throw new ArgumentNullException(nameof(args)); - } - - try { string? envNetworkGroup = Environment.GetEnvironmentVariable(SharedInfo.EnvironmentVariableNetworkGroup); if (!string.IsNullOrEmpty(envNetworkGroup)) { @@ -482,21 +443,45 @@ namespace ArchiSteamFarm { ASF.ArchiLogger.LogGenericException(e); } + bool cryptKeyNext = false; bool networkGroupNext = false; bool pathNext = false; foreach (string arg in args) { switch (arg) { - case "--network-group" when !networkGroupNext && !pathNext: + case "--cryptkey" when !cryptKeyNext && !networkGroupNext && !pathNext: + cryptKeyNext = true; + + break; + case "--ignore-unsupported-environment" when !cryptKeyNext && !networkGroupNext && !pathNext: + IgnoreUnsupportedEnvironment = true; + + break; + case "--network-group" when !cryptKeyNext && !networkGroupNext && !pathNext: networkGroupNext = true; break; - case "--path" when !networkGroupNext && !pathNext: + case "--no-restart" when !cryptKeyNext && !networkGroupNext && !pathNext: + RestartAllowed = false; + + break; + case "--process-required" when !cryptKeyNext && !networkGroupNext && !pathNext: + ProcessRequired = true; + + break; + case "--path" when !cryptKeyNext && !networkGroupNext && !pathNext: pathNext = true; + break; + case "--system-required" when !cryptKeyNext && !networkGroupNext && !pathNext: + SystemRequired = true; + break; default: - if (networkGroupNext) { + if (cryptKeyNext) { + cryptKeyNext = false; + HandleCryptKeyArgument(arg); + } else if (networkGroupNext) { networkGroupNext = false; HandleNetworkGroupArgument(arg); } else if (pathNext) { @@ -507,10 +492,18 @@ namespace ArchiSteamFarm { case > 16 when arg.StartsWith("--network-group=", StringComparison.Ordinal): HandleNetworkGroupArgument(arg.Substring(16)); + break; + case > 11 when arg.StartsWith("--cryptkey=", StringComparison.Ordinal): + HandleCryptKeyArgument(arg.Substring(11)); + break; case > 7 when arg.StartsWith("--path=", StringComparison.Ordinal): HandlePathArgument(arg.Substring(7)); + break; + default: + ASF.ArchiLogger.LogGenericWarning(string.Format(CultureInfo.CurrentCulture, Strings.WarningUnknownCommandLineArgument, arg)); + break; } }