diff --git a/Libraries/Core/Services/RagfairOfferService.cs b/Libraries/Core/Services/RagfairOfferService.cs index 5c4656e4..de5180c0 100644 --- a/Libraries/Core/Services/RagfairOfferService.cs +++ b/Libraries/Core/Services/RagfairOfferService.cs @@ -1,11 +1,16 @@ -using SptCommon.Annotations; +using SptCommon.Annotations; using Core.Models.Eft.Common.Tables; using Core.Models.Eft.Ragfair; +using Core.Models.Utils; namespace Core.Services; [Injectable(InjectionType.Singleton)] -public class RagfairOfferService +public class RagfairOfferService( + ISptLogger _logger, + DatabaseService _databaseService, + RagfairOfferService _ragfairOfferService, + LocalisationService _localisationService) { /// /// Get all offers @@ -101,12 +106,21 @@ public class RagfairOfferService /// /// Do the trader offers on flea need to be refreshed /// - /// Trader to check + /// Trader to check /// true if they do - public bool TraderOffersNeedRefreshing(string traderID) + public bool TraderOffersNeedRefreshing(string traderId) { - Console.WriteLine($"actually implement me plz: owo: TraderOffersNeedRefreshing"); - return false; + var trader = _databaseService.GetTrader(traderId); + if (trader?.Base == null) { + _logger.Error(_localisationService.GetText("ragfair-trader_missing_base_file", traderId)); + + return false; + } + + // No value, occurs when first run, trader offers need to be added to flea + trader.Base.RefreshTraderRagfairOffers ??= true; + + return trader.Base.RefreshTraderRagfairOffers.GetValueOrDefault(false); } public void AddPlayerOffers()