diff --git a/Libraries/Core/Services/RagfairOfferService.cs b/Libraries/Core/Services/RagfairOfferService.cs
index dcf61482..1c4bfc7d 100644
--- a/Libraries/Core/Services/RagfairOfferService.cs
+++ b/Libraries/Core/Services/RagfairOfferService.cs
@@ -223,7 +223,7 @@ public class RagfairOfferService(
playerOffer.Items[0].Upd.OriginalStackObjectsCount = null;
// Remove player offer from flea
- ragfairOfferHolder.RemoveOffer(playerOffer.Id);
+ ragfairOfferHolder.RemoveOffer(playerOffer.Id, false);
// Send failed offer items to player in mail
var unstackedItems = UnstackOfferItems(playerOffer.Items);
diff --git a/Libraries/Core/Utils/RagfairOfferHolder.cs b/Libraries/Core/Utils/RagfairOfferHolder.cs
index 6f90c113..7c43fc30 100644
--- a/Libraries/Core/Utils/RagfairOfferHolder.cs
+++ b/Libraries/Core/Utils/RagfairOfferHolder.cs
@@ -130,28 +130,27 @@ public class RagfairOfferHolder(
offer.Id = hashUtil.Generate();
}
- var offerId = offer.Id;
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
var sellerIsTrader = ragfairServerHelper.IsTrader(sellerId);
- if (itemTpl != null &&
- !(sellerIsTrader || profileHelper.IsPlayer(sellerId)) &&
- _offersByTemplate.TryGetValue(itemTpl, out var offers) &&
- offers?.Count >= _maxOffersPerTemplate
+ if (itemTpl != null
+ && !(sellerIsTrader || profileHelper.IsPlayer(sellerId))
+ && _offersByTemplate.TryGetValue(itemTpl, out var offers)
+ && offers?.Count >= _maxOffersPerTemplate
)
{
return;
}
- _offersById.Add(offerId, offer);
+ _offersById.Add(offer.Id, offer);
if (sellerIsTrader)
{
- AddOfferByTrader(sellerId, offer);
+ AddOfferByTrader(sellerId, offer.Id);
}
- AddOfferByTemplates(itemTpl, offer);
+ AddOfferByTemplates(itemTpl, offer.Id);
}
}
@@ -227,18 +226,18 @@ public class RagfairOfferHolder(
/// Add offer to offersByTemplate cache
///
/// Tpl to store offer against
- /// Offer to store against tpl
- protected void AddOfferByTemplates(string template, RagfairOffer offer)
+ /// Offer to store against tpl
+ protected void AddOfferByTemplates(string template, string offerId)
{
lock (_offersByTemplateLock)
{
if (_offersByTemplate.ContainsKey(template))
{
- _offersByTemplate[template].Add(offer.Id);
+ _offersByTemplate[template].Add(offerId);
}
else
{
- _offersByTemplate.Add(template, [offer.Id]);
+ _offersByTemplate.Add(template, [offerId]);
}
}
}
@@ -247,18 +246,18 @@ public class RagfairOfferHolder(
/// Cache an offer inside `offersByTrader` by trader id
///
/// Trader id to store offer against
- /// Offer to store against
- protected void AddOfferByTrader(string trader, RagfairOffer offer)
+ /// Offer to store against
+ protected void AddOfferByTrader(string trader, string offerId)
{
lock (_offersByTraderLock)
{
if (_offersByTrader.ContainsKey(trader))
{
- _offersByTrader[trader].Add(offer.Id);
+ _offersByTrader[trader].Add(offerId);
}
else
{
- _offersByTrader.Add(trader, [offer.Id]);
+ _offersByTrader.Add(trader, [offerId]);
}
}
}