diff --git a/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs b/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs index 5a69fa18..e4c27f14 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs @@ -351,30 +351,33 @@ public class RagfairOfferHolder( /// Expired offer assorts public IEnumerable> GetExpiredOfferItems() { + List expiredOfferIdsCopy; lock (_expiredOfferIdsLock) { - // list of lists of item+children - var expiredItems = new List>(); - foreach (var expiredOfferId in _expiredOfferIds) + expiredOfferIdsCopy = _expiredOfferIds.ToList(); + } + + // list of lists of item+children + var expiredItems = new List>(); + foreach (var expiredOfferId in expiredOfferIdsCopy) + { + var offer = GetOfferById(expiredOfferId); + if (offer is null) { - var offer = GetOfferById(expiredOfferId); - if (offer is null) - { - _logger.Warning($"Expired offerId: {expiredOfferId} not found, skipping"); - continue; - } - - if (offer.Items?.Count == 0) - { - _logger.Error($"Expired offerId: {expiredOfferId} has no items, skipping"); - continue; - } - - expiredItems.Add(offer.Items); + _logger.Warning($"Expired offerId: {expiredOfferId} not found, skipping"); + continue; } - return expiredItems; + if (offer.Items?.Count == 0) + { + _logger.Error($"Expired offerId: {expiredOfferId} has no items, skipping"); + continue; + } + + expiredItems.Add(offer.Items); } + + return expiredItems; } ///