Fix for edge case of MatchableTypes being empty

Thanks @ezhevita
This commit is contained in:
Łukasz Domeradzki
2025-09-08 23:17:23 +02:00
parent d59d51ae33
commit 8618b01800
2 changed files with 4 additions and 4 deletions

View File

@@ -233,6 +233,7 @@ internal sealed class RemoteCommunication : IAsyncDisposable, IDisposable {
HashSet<EAssetType> acceptedMatchableTypes = Bot.BotConfig.MatchableTypes.Where(AcceptedMatchableTypes.Contains).ToHashSet();
if (acceptedMatchableTypes.Count == 0) {
// Should never happen, since IsEligibleForListing() check above ensured we have at least one matchable type
throw new InvalidOperationException(nameof(acceptedMatchableTypes));
}
@@ -905,9 +906,8 @@ internal sealed class RemoteCommunication : IAsyncDisposable, IDisposable {
HashSet<EAssetType> acceptedMatchableTypes = Bot.BotConfig.MatchableTypes.Where(AcceptedMatchableTypes.Contains).ToHashSet();
if (acceptedMatchableTypes.Count == 0) {
Bot.ArchiLogger.LogNullError(acceptedMatchableTypes);
return;
// Should never happen, since IsEligibleForMatching() check above ensured we have at least one matchable type
throw new InvalidOperationException(nameof(acceptedMatchableTypes));
}
if (!await MatchActivelySemaphore.WaitAsync(0).ConfigureAwait(false)) {

View File

@@ -503,7 +503,7 @@ public sealed class Trading : IDisposable {
}
// Decline trade if we're requested to handle any not-accepted item type or if it's not fair games/types exchange
if (!tradeOffer.IsValidSteamItemsRequest(Bot.BotConfig.MatchableTypes) || !IsFairExchange(tradeOffer.ItemsToGive, tradeOffer.ItemsToReceive)) {
if (Bot.BotConfig.MatchableTypes.IsEmpty || !tradeOffer.IsValidSteamItemsRequest(Bot.BotConfig.MatchableTypes) || !IsFairExchange(tradeOffer.ItemsToGive, tradeOffer.ItemsToReceive)) {
Bot.ArchiLogger.LogGenericDebug(Strings.FormatBotTradeOfferResult(tradeOffer.TradeOfferID, ParseTradeResult.EResult.Rejected, $"{nameof(tradeOffer.IsValidSteamItemsRequest)} || {nameof(IsFairExchange)}"));
return ParseTradeResult.EResult.Rejected;