mirror of
https://github.com/JustArchiNET/ArchiSteamFarm.git
synced 2025-12-16 06:20:34 +00:00
Fix for edge case of MatchableTypes being empty
Thanks @ezhevita
This commit is contained in:
@@ -233,6 +233,7 @@ internal sealed class RemoteCommunication : IAsyncDisposable, IDisposable {
|
|||||||
HashSet<EAssetType> acceptedMatchableTypes = Bot.BotConfig.MatchableTypes.Where(AcceptedMatchableTypes.Contains).ToHashSet();
|
HashSet<EAssetType> acceptedMatchableTypes = Bot.BotConfig.MatchableTypes.Where(AcceptedMatchableTypes.Contains).ToHashSet();
|
||||||
|
|
||||||
if (acceptedMatchableTypes.Count == 0) {
|
if (acceptedMatchableTypes.Count == 0) {
|
||||||
|
// Should never happen, since IsEligibleForListing() check above ensured we have at least one matchable type
|
||||||
throw new InvalidOperationException(nameof(acceptedMatchableTypes));
|
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();
|
HashSet<EAssetType> acceptedMatchableTypes = Bot.BotConfig.MatchableTypes.Where(AcceptedMatchableTypes.Contains).ToHashSet();
|
||||||
|
|
||||||
if (acceptedMatchableTypes.Count == 0) {
|
if (acceptedMatchableTypes.Count == 0) {
|
||||||
Bot.ArchiLogger.LogNullError(acceptedMatchableTypes);
|
// Should never happen, since IsEligibleForMatching() check above ensured we have at least one matchable type
|
||||||
|
throw new InvalidOperationException(nameof(acceptedMatchableTypes));
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!await MatchActivelySemaphore.WaitAsync(0).ConfigureAwait(false)) {
|
if (!await MatchActivelySemaphore.WaitAsync(0).ConfigureAwait(false)) {
|
||||||
|
|||||||
@@ -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
|
// 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)}"));
|
Bot.ArchiLogger.LogGenericDebug(Strings.FormatBotTradeOfferResult(tradeOffer.TradeOfferID, ParseTradeResult.EResult.Rejected, $"{nameof(tradeOffer.IsValidSteamItemsRequest)} || {nameof(IsFairExchange)}"));
|
||||||
|
|
||||||
return ParseTradeResult.EResult.Rejected;
|
return ParseTradeResult.EResult.Rejected;
|
||||||
|
|||||||
Reference in New Issue
Block a user