From 555a74e2b65df4565ef83a19c31353af73098932 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Mon, 3 Dec 2018 01:24:33 +0100 Subject: [PATCH] Optimize memory usage --- ArchiSteamFarm/ArchiWebHandler.cs | 2 +- ArchiSteamFarm/Commands.cs | 7 +------ ArchiSteamFarm/Statistics.cs | 6 ++++-- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/ArchiSteamFarm/ArchiWebHandler.cs b/ArchiSteamFarm/ArchiWebHandler.cs index 718d28bc4..c4bd977ac 100644 --- a/ArchiSteamFarm/ArchiWebHandler.cs +++ b/ArchiSteamFarm/ArchiWebHandler.cs @@ -1059,7 +1059,7 @@ namespace ArchiSteamFarm { Bot.ArchiLogger.LogGenericInfo(Strings.Success); // Unlock Steam Parental if needed - if (!string.IsNullOrEmpty(parentalCode) && (parentalCode.Length == 4)) { + if ((parentalCode != null) && (parentalCode.Length == 4)) { if (!await UnlockParentalAccount(parentalCode).ConfigureAwait(false)) { return false; } diff --git a/ArchiSteamFarm/Commands.cs b/ArchiSteamFarm/Commands.cs index 90dbe0cc0..0773f5b16 100644 --- a/ArchiSteamFarm/Commands.cs +++ b/ArchiSteamFarm/Commands.cs @@ -1130,12 +1130,7 @@ namespace ArchiSteamFarm { } uint? level = await Bot.ArchiHandler.GetLevel().ConfigureAwait(false); - - if (!level.HasValue) { - return FormatBotResponse(Strings.WarningFailed); - } - - return FormatBotResponse(string.Format(Strings.BotLevel, level.Value)); + return FormatBotResponse(level.HasValue ? string.Format(Strings.BotLevel, level.Value) : Strings.WarningFailed); } private static async Task ResponseLevel(ulong steamID, string botNames) { diff --git a/ArchiSteamFarm/Statistics.cs b/ArchiSteamFarm/Statistics.cs index 4e5d30032..4cef9fc9f 100644 --- a/ArchiSteamFarm/Statistics.cs +++ b/ArchiSteamFarm/Statistics.cs @@ -275,10 +275,12 @@ namespace ArchiSteamFarm { byte emptyMatches = 0; HashSet<(uint AppID, Steam.Asset.EType Type)> skippedSetsThisRound = new HashSet<(uint AppID, Steam.Asset.EType Type)>(); - foreach (ListedUser listedUser in listedUsers.Where(listedUser => listedUser.MatchEverything && listedUser.MatchableTypes.Any(acceptedMatchableTypes.Contains) && !Bot.IsBlacklistedFromTrades(listedUser.SteamID)).OrderByDescending(listedUser => listedUser.Score).Take(MaxMatchedBotsHard)) { + foreach (ListedUser listedUser in listedUsers.Where(listedUser => listedUser.MatchEverything && acceptedMatchableTypes.Any(listedUser.MatchableTypes.Contains) && !Bot.IsBlacklistedFromTrades(listedUser.SteamID)).OrderByDescending(listedUser => listedUser.Score).Take(MaxMatchedBotsHard)) { Bot.ArchiLogger.LogGenericTrace(listedUser.SteamID + "..."); - HashSet theirInventory = await Bot.ArchiWebHandler.GetInventory(listedUser.SteamID, tradable: true, wantedTypes: acceptedMatchableTypes, skippedSets: skippedSetsThisRound).ConfigureAwait(false); + HashSet sharedTypes = acceptedMatchableTypes.Where(listedUser.MatchableTypes.Contains).ToHashSet(); + + HashSet theirInventory = await Bot.ArchiWebHandler.GetInventory(listedUser.SteamID, tradable: true, wantedTypes: sharedTypes, skippedSets: skippedSetsThisRound).ConfigureAwait(false); if ((theirInventory == null) || (theirInventory.Count == 0)) { Bot.ArchiLogger.LogGenericTrace(string.Format(Strings.ErrorIsEmpty, nameof(theirInventory))); continue;