Improved nullguarding inside RagfairOfferHolder

This commit is contained in:
Chomp
2025-02-06 22:20:24 +00:00
parent 7a12d17fb6
commit c709efbca2
2 changed files with 7 additions and 8 deletions
@@ -2,7 +2,6 @@ using Core.Helpers;
using SptCommon.Annotations;
using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.Ragfair;
using Core.Models.Spt.Config;
using Core.Models.Utils;
using Core.Servers;
using Core.Utils;
+7 -7
View File
@@ -60,10 +60,9 @@ public class RagfairOfferHolder(
return null;
}
var result = _offersById
.Where(x => offerIds.Contains(x.Key))
.Select(x => x.Value).ToList();
return result;
return offerIds.Select(offerId => _offersById.GetValueOrDefault(offerId))
.Where(offer => offer != null)
.ToList();
}
}
@@ -94,11 +93,12 @@ public class RagfairOfferHolder(
}
var offerId = offer.Id;
var itemTpl = offer.Items.FirstOrDefault().Template;
var itemTpl = offer.Items?.FirstOrDefault()?.Template;
// If it is an NPC PMC offer AND we have already reached the maximum amount of possible offers
// for this template, just don't add in more
_offersByTemplate.TryGetValue(itemTpl, out var offers);
if (!(ragfairServerHelper.IsTrader(sellerId) || profileHelper.IsPlayer(sellerId))
if (itemTpl != null
&& !(ragfairServerHelper.IsTrader(sellerId) || profileHelper.IsPlayer(sellerId))
&& _offersByTemplate.TryGetValue(itemTpl, out var offers)
&& offers?.Count >= _maxOffersPerTemplate
)
{