Resolved various editor warnings inside TraderController
This commit is contained in:
@@ -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<TraderController> _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<TraderController> 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<TraderConfig>();
|
||||
protected readonly TraderConfig TraderConfig = configServer.GetConfig<TraderConfig>();
|
||||
|
||||
/// <summary>
|
||||
/// Runs when onLoad event is fired
|
||||
@@ -39,36 +37,35 @@ public class TraderController(
|
||||
/// </summary>
|
||||
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(
|
||||
/// <returns>True if ran successfully</returns>
|
||||
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<TraderBase> GetAllTraders(string sessionId)
|
||||
{
|
||||
var traders = new List<TraderBase>();
|
||||
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(
|
||||
/// <param name="sessionId">Session/Player id</param>
|
||||
/// <param name="traderId"></param>
|
||||
/// <returns></returns>
|
||||
public TraderBase GetTrader(string sessionId, string traderId)
|
||||
public TraderBase? GetTrader(string sessionId, string traderId)
|
||||
{
|
||||
return _traderHelper.GetTrader(sessionId, traderId);
|
||||
return traderHelper.GetTrader(sessionId, traderId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -182,7 +191,7 @@ public class TraderController(
|
||||
/// <returns></returns>
|
||||
public TraderAssort GetAssort(string sessionId, string traderId)
|
||||
{
|
||||
return _traderAssortHelper.GetAssort(sessionId, traderId);
|
||||
return traderAssortHelper.GetAssort(sessionId, traderId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -191,11 +200,11 @@ public class TraderController(
|
||||
/// <returns></returns>
|
||||
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<string, double>
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user