Skip to content

Commit 8618b01

Browse files
committed
Fix for edge case of MatchableTypes being empty
Thanks @ezhevita
1 parent d59d51a commit 8618b01

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

ArchiSteamFarm.OfficialPlugins.ItemsMatcher/RemoteCommunication.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ internal async Task OnPersonaState(string? nickname = null, string? avatarHash =
233233
HashSet<EAssetType> acceptedMatchableTypes = Bot.BotConfig.MatchableTypes.Where(AcceptedMatchableTypes.Contains).ToHashSet();
234234

235235
if (acceptedMatchableTypes.Count == 0) {
236+
// Should never happen, since IsEligibleForListing() check above ensured we have at least one matchable type
236237
throw new InvalidOperationException(nameof(acceptedMatchableTypes));
237238
}
238239

@@ -905,9 +906,8 @@ private async void MatchActively(object? state = null) {
905906
HashSet<EAssetType> acceptedMatchableTypes = Bot.BotConfig.MatchableTypes.Where(AcceptedMatchableTypes.Contains).ToHashSet();
906907

907908
if (acceptedMatchableTypes.Count == 0) {
908-
Bot.ArchiLogger.LogNullError(acceptedMatchableTypes);
909-
910-
return;
909+
// Should never happen, since IsEligibleForMatching() check above ensured we have at least one matchable type
910+
throw new InvalidOperationException(nameof(acceptedMatchableTypes));
911911
}
912912

913913
if (!await MatchActivelySemaphore.WaitAsync(0).ConfigureAwait(false)) {

ArchiSteamFarm/Steam/Exchange/Trading.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ private async Task<ParseTradeResult> ParseTrade(TradeOffer tradeOffer, ISet<(uin
503503
}
504504

505505
// Decline trade if we're requested to handle any not-accepted item type or if it's not fair games/types exchange
506-
if (!tradeOffer.IsValidSteamItemsRequest(Bot.BotConfig.MatchableTypes) || !IsFairExchange(tradeOffer.ItemsToGive, tradeOffer.ItemsToReceive)) {
506+
if (Bot.BotConfig.MatchableTypes.IsEmpty || !tradeOffer.IsValidSteamItemsRequest(Bot.BotConfig.MatchableTypes) || !IsFairExchange(tradeOffer.ItemsToGive, tradeOffer.ItemsToReceive)) {
507507
Bot.ArchiLogger.LogGenericDebug(Strings.FormatBotTradeOfferResult(tradeOffer.TradeOfferID, ParseTradeResult.EResult.Rejected, $"{nameof(tradeOffer.IsValidSteamItemsRequest)} || {nameof(IsFairExchange)}"));
508508

509509
return ParseTradeResult.EResult.Rejected;

0 commit comments

Comments
 (0)