diff --git a/ArchiSteamFarm/Actions.cs b/ArchiSteamFarm/Actions.cs index 98e7f9e8b..c219fd70b 100644 --- a/ArchiSteamFarm/Actions.cs +++ b/ArchiSteamFarm/Actions.cs @@ -60,6 +60,8 @@ namespace ArchiSteamFarm { return false; } + HashSet handledTradeOfferIDs = null; + for (byte i = 0; (i == 0) || ((i < WebBrowser.MaxTries) && waitIfNeeded); i++) { if (i > 0) { await Task.Delay(1000).ConfigureAwait(false); @@ -89,9 +91,15 @@ namespace ArchiSteamFarm { return false; } - // Check if those are all that we were expected to confirm - HashSet handledTradeOfferIDs = results.Where(details => (details != null) && (details.TradeOfferID != 0)).Select(result => result.TradeOfferID).ToHashSet(); + IEnumerable handledTradeOfferIDsThisRound = results.Where(details => (details != null) && (details.TradeOfferID != 0)).Select(result => result.TradeOfferID); + if (handledTradeOfferIDs != null) { + handledTradeOfferIDs.UnionWith(handledTradeOfferIDsThisRound); + } else { + handledTradeOfferIDs = handledTradeOfferIDsThisRound.ToHashSet(); + } + + // Check if those are all that we were expected to confirm if (handledTradeOfferIDs.SetEquals(acceptedTradeOfferIDs)) { return true; }