Updated OnUpdate to return task<bool>

This commit is contained in:
Chomp
2025-06-05 14:12:10 +01:00
parent 969e94975e
commit 09211c78ee
7 changed files with 38 additions and 32 deletions
@@ -17,10 +17,10 @@ public class DialogueCallbacks(
)
: IOnUpdate
{
public Task OnUpdate(long timeSinceLastRun)
public Task<bool> OnUpdate(long timeSinceLastRun)
{
_dialogueController.Update();
return Task.CompletedTask;
return Task.FromResult(true);
}
/// <summary>
@@ -20,12 +20,12 @@ public class HideoutCallbacks(
private readonly HideoutConfig _hideoutConfig = _configServer.GetConfig<HideoutConfig>();
private long _lastRunOnUpdateTimestamp = long.MaxValue;
public Task OnUpdate(long secondsSinceLastRun)
public Task<bool> OnUpdate(long secondsSinceLastRun)
{
if (_timeUtil.GetTimeStamp() <= _lastRunOnUpdateTimestamp + _hideoutConfig.RunIntervalSeconds)
{
// Not enough time has passed since last run, exit early
return Task.CompletedTask;
return Task.FromResult(false);
}
_hideoutController.Update();
@@ -33,7 +33,7 @@ public class HideoutCallbacks(
// Store last completion time for later use
_lastRunOnUpdateTimestamp = _timeUtil.GetTimeStamp();
return Task.CompletedTask;
return Task.FromResult(true);
}
/// <summary>
@@ -16,20 +16,27 @@ public class InsuranceCallbacks(
InsuranceController _insuranceController,
InsuranceService _insuranceService,
HttpResponseUtil _httpResponseUtil,
ConfigServer _configServer
ConfigServer _configServer,
TimeUtil _timeUtil
)
: IOnUpdate
{
private readonly InsuranceConfig _insuranceConfig = _configServer.GetConfig<InsuranceConfig>();
private long _lastRunOnUpdateTimestamp = long.MaxValue;
public Task OnUpdate(long timeSinceLastRun)
public Task<bool> OnUpdate(long secondsSinceLastRun)
{
if (timeSinceLastRun > Math.Max(_insuranceConfig.RunIntervalSeconds, 1))
if (_timeUtil.GetTimeStamp() <= _lastRunOnUpdateTimestamp + _insuranceConfig.RunIntervalSeconds)
{
_insuranceController.ProcessReturn();
return Task.FromResult(false);
}
return Task.CompletedTask;
_insuranceController.ProcessReturn();
// Store last completion time for later use
_lastRunOnUpdateTimestamp = _timeUtil.GetTimeStamp();
return Task.FromResult(true);
}
/// <summary>
@@ -32,12 +32,12 @@ public class RagfairCallbacks(
return Task.CompletedTask;
}
public Task OnUpdate(long secondsSinceLastRun)
public Task<bool> OnUpdate(long secondsSinceLastRun)
{
if (_timeUtil.GetTimeStamp() <= _lastRunOnUpdateTimestamp + _ragfairConfig.RunIntervalSeconds)
{
// Not enough time has passed since last run, exit early
return Task.CompletedTask;
return Task.FromResult(false);
}
// There is a flag inside this class that only makes it run once.
@@ -52,7 +52,7 @@ public class RagfairCallbacks(
// Store last completion time for later use
_lastRunOnUpdateTimestamp = _timeUtil.GetTimeStamp();
return Task.CompletedTask;
return Task.FromResult(true);
}
/// <summary>
@@ -3,6 +3,7 @@ using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Spt.Config;
using SPTarkov.Server.Core.Servers;
using SPTarkov.Server.Core.Services;
using SPTarkov.Server.Core.Utils;
namespace SPTarkov.Server.Core.Callbacks;
@@ -10,11 +11,13 @@ namespace SPTarkov.Server.Core.Callbacks;
public class SaveCallbacks(
SaveServer _saveServer,
ConfigServer _configServer,
BackupService _backupService
BackupService _backupService,
TimeUtil _timeUtil
)
: IOnLoad, IOnUpdate
{
private readonly CoreConfig _coreConfig = _configServer.GetConfig<CoreConfig>();
private long _lastRunOnUpdateTimestamp = long.MaxValue;
public async Task OnLoad()
{
@@ -22,13 +25,19 @@ public class SaveCallbacks(
_saveServer.Load();
}
public Task OnUpdate(long timeSinceLastRun)
public Task<bool> OnUpdate(long secondsSinceLastRun)
{
if (timeSinceLastRun > _coreConfig.ProfileSaveIntervalInSeconds)
if (_timeUtil.GetTimeStamp() <= _lastRunOnUpdateTimestamp + _coreConfig.ProfileSaveIntervalInSeconds)
{
_saveServer.Save();
// Not enough time has passed since last run, exit early
return Task.FromResult(false);
}
return Task.CompletedTask;
_saveServer.Save();
// Store last completion time for later use
_lastRunOnUpdateTimestamp = _timeUtil.GetTimeStamp();
return Task.FromResult(false);
}
}
@@ -23,19 +23,16 @@ public class TraderCallbacks(
return Task.CompletedTask;
}
public Task OnUpdate(long _)
public Task<bool> OnUpdate(long _)
{
_traderController.Update();
return Task.CompletedTask;
return Task.FromResult(true);
}
/// <summary>
/// Handle client/trading/api/traderSettings
/// </summary>
/// <param name="url"></param>
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> GetTraderSettings(string url, EmptyRequestData _, string sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(_traderController.GetAllTraders(sessionID)));
@@ -44,10 +41,6 @@ public class TraderCallbacks(
/// <summary>
/// Handle client/trading/api/getTrader
/// </summary>
/// <param name="url"></param>
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> GetTrader(string url, EmptyRequestData _, string sessionID)
{
var traderID = url.Replace("/client/trading/api/getTrader/", "");
@@ -57,9 +50,6 @@ public class TraderCallbacks(
/// <summary>
/// Handle client/trading/api/getTraderAssort
/// </summary>
/// <param name="url"></param>
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> GetAssort(string url, EmptyRequestData _, string sessionID)
{
@@ -2,5 +2,5 @@ namespace SPTarkov.Server.Core.DI;
public interface IOnUpdate
{
Task OnUpdate(long secondsSinceLastRun);
Task<bool> OnUpdate(long secondsSinceLastRun);
}