From f256cbf529bd7ac7d353f4082f6b46d6210b97f6 Mon Sep 17 00:00:00 2001 From: Chomp Date: Thu, 26 Jun 2025 13:11:22 +0100 Subject: [PATCH] Resolved various editor warnings inside `TraderController` --- .../Controllers/TraderController.cs | 109 ++++++++++-------- .../Models/Spt/Server/DatabaseTables.cs | 2 +- 2 files changed, 60 insertions(+), 51 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/TraderController.cs b/Libraries/SPTarkov.Server.Core/Controllers/TraderController.cs index c407ce3c..6b2e0374 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/TraderController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/TraderController.cs @@ -9,28 +9,26 @@ using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; using SPTarkov.Server.Core.Utils; -using SPTarkov.Server.Core.Utils.Cloners; namespace SPTarkov.Server.Core.Controllers; [Injectable] public class TraderController( - ISptLogger _logger, - TimeUtil _timeUtil, - DatabaseService _databaseService, - TraderAssortHelper _traderAssortHelper, - ProfileHelper _profileHelper, - TraderHelper _traderHelper, - PaymentHelper _paymentHelper, - RagfairPriceService _ragfairPriceService, - TraderPurchasePersisterService _traderPurchasePersisterService, - FenceService _fenceService, - FenceBaseAssortGenerator _fenceBaseAssortGenerator, - ConfigServer _configServer, - ICloner _cloner + ISptLogger logger, + TimeUtil timeUtil, + DatabaseService databaseService, + TraderAssortHelper traderAssortHelper, + ProfileHelper profileHelper, + TraderHelper traderHelper, + PaymentHelper paymentHelper, + RagfairPriceService ragfairPriceService, + TraderPurchasePersisterService traderPurchasePersisterService, + FenceService fenceService, + FenceBaseAssortGenerator fenceBaseAssortGenerator, + ConfigServer configServer ) { - protected TraderConfig _traderConfig = _configServer.GetConfig(); + protected readonly TraderConfig TraderConfig = configServer.GetConfig(); /// /// Runs when onLoad event is fired @@ -39,36 +37,35 @@ public class TraderController( /// public void Load() { - var nextHourTimestamp = _timeUtil.GetTimeStampOfNextHour(); - var traderResetStartsWithServer = _traderConfig.TradersResetFromServerStart; + var nextHourTimestamp = timeUtil.GetTimeStampOfNextHour(); + var traderResetStartsWithServer = TraderConfig.TradersResetFromServerStart; - var traders = _databaseService.GetTraders(); + var traders = databaseService.GetTraders(); foreach (var (traderId, trader) in traders) { - if (traderId is "ragfair" or Traders.LIGHTHOUSEKEEPER) + switch (traderId) { - continue; - } + case "ragfair": + case Traders.LIGHTHOUSEKEEPER: + continue; + case Traders.FENCE: + fenceBaseAssortGenerator.GenerateFenceBaseAssorts(); + fenceService.GenerateFenceAssorts(); - if (traderId == Traders.FENCE) - { - _fenceBaseAssortGenerator.GenerateFenceBaseAssorts(); - _fenceService.GenerateFenceAssorts(); - - continue; + continue; } // Adjust price by traderPriceMultiplier config property - if (_traderConfig.TraderPriceMultiplier != 1) + if (TraderConfig.TraderPriceMultiplier != 1) { - AdjustTraderItemPrices(trader, _traderConfig.TraderPriceMultiplier); + AdjustTraderItemPrices(trader, TraderConfig.TraderPriceMultiplier); } - _traderPurchasePersisterService.RemoveStalePurchasesFromProfiles(traderId); + traderPurchasePersisterService.RemoveStalePurchasesFromProfiles(traderId); // Set to next hour on clock or current time + 60 minutes trader.Base.NextResupply = traderResetStartsWithServer - ? (int)_traderHelper.GetNextUpdateTimestamp(trader.Base.Id) + ? (int)traderHelper.GetNextUpdateTimestamp(trader.Base.Id) : (int)nextHourTimestamp; } } @@ -84,7 +81,10 @@ public class TraderController( foreach (var kvp in trader.Assort?.BarterScheme) { var barterSchemeItem = kvp.Value?.FirstOrDefault()?.FirstOrDefault(); - if (barterSchemeItem != null && _paymentHelper.IsMoneyTpl(barterSchemeItem.Template)) + if ( + barterSchemeItem?.Template != null + && paymentHelper.IsMoneyTpl(barterSchemeItem.Template) + ) { barterSchemeItem.Count += Math.Round(barterSchemeItem?.Count * multiplier ?? 0D, 2); } @@ -99,7 +99,7 @@ public class TraderController( /// True if ran successfully public bool Update() { - foreach (var (traderId, data) in _databaseService.GetTables().Traders) + foreach (var (traderId, trader) in databaseService.GetTables().Traders) { switch (traderId) { @@ -107,23 +107,26 @@ public class TraderController( continue; case Traders.FENCE: { - if (_fenceService.NeedsPartialRefresh()) + if (fenceService.NeedsPartialRefresh()) { - _fenceService.GenerateFenceAssorts(); + fenceService.GenerateFenceAssorts(); } continue; } } - // Trader needs to be refreshed - if (_traderAssortHelper.TraderAssortsHaveExpired(traderId)) + if (!traderAssortHelper.TraderAssortsHaveExpired(traderId)) { - _traderAssortHelper.ResetExpiredTrader(data); - - // Reset purchase data per trader as they have independent reset times - _traderPurchasePersisterService.ResetTraderPurchasesStoredInProfile(traderId); + // Trader is still active, nothing else to do + continue; } + + // Trader needs to be refreshed + traderAssortHelper.ResetExpiredTrader(trader); + + // Reset purchase data per trader as they have independent reset times + traderPurchasePersisterService.ResetTraderPurchasesStoredInProfile(traderId); } return true; @@ -137,14 +140,20 @@ public class TraderController( public List GetAllTraders(string sessionId) { var traders = new List(); - var pmcData = _profileHelper.GetPmcProfile(sessionId); - foreach (var (traderId, _) in _databaseService.GetTables().Traders) + var pmcData = profileHelper.GetPmcProfile(sessionId); + foreach (var (traderId, _) in databaseService.GetTables().Traders) { - traders.Add(_traderHelper.GetTrader(traderId, sessionId)); + var traderToAdd = traderHelper.GetTrader(traderId, sessionId); + if (traderToAdd is null) + { + logger.Warning($"No trader with id: {traderId} found, skipping"); + continue; + } + traders.Add(traderToAdd); if (pmcData?.Info != null) { - _traderHelper.LevelUp(traderId, pmcData); + traderHelper.LevelUp(traderId, pmcData); } } @@ -169,9 +178,9 @@ public class TraderController( /// Session/Player id /// /// - public TraderBase GetTrader(string sessionId, string traderId) + public TraderBase? GetTrader(string sessionId, string traderId) { - return _traderHelper.GetTrader(sessionId, traderId); + return traderHelper.GetTrader(sessionId, traderId); } /// @@ -182,7 +191,7 @@ public class TraderController( /// public TraderAssort GetAssort(string sessionId, string traderId) { - return _traderAssortHelper.GetAssort(sessionId, traderId); + return traderAssortHelper.GetAssort(sessionId, traderId); } /// @@ -191,11 +200,11 @@ public class TraderController( /// public GetItemPricesResponse GetItemPrices(string sessionId, string traderId) { - var handbookPrices = _ragfairPriceService.GetAllStaticPrices(); + var handbookPrices = ragfairPriceService.GetAllStaticPrices(); return new GetItemPricesResponse { - SupplyNextTime = _traderHelper.GetNextUpdateTimestamp(traderId), + SupplyNextTime = traderHelper.GetNextUpdateTimestamp(traderId), Prices = handbookPrices, CurrencyCourses = new Dictionary { diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Server/DatabaseTables.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Server/DatabaseTables.cs index a59cb49f..c9aef7fb 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Server/DatabaseTables.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Server/DatabaseTables.cs @@ -21,7 +21,7 @@ public record DatabaseTables public Templates.Templates? Templates { get; set; } - public Dictionary? Traders { get; set; } + public Dictionary Traders { get; set; } public Globals? Globals { get; set; }