using Core.Controllers; using Core.DI; using Core.Models.Eft.Common; using Core.Models.Spt.Config; using Core.Servers; using Core.Utils; using SptCommon.Annotations; namespace Core.Callbacks; [Injectable(InjectableTypeOverride = typeof(IOnLoad), TypePriority = OnLoadOrder.TraderCallbacks)] [Injectable(InjectableTypeOverride = typeof(OnUpdate), TypePriority = OnUpdateOrder.TraderCallbacks)] [Injectable(InjectableTypeOverride = typeof(TraderCallbacks))] public class TraderCallbacks( HttpResponseUtil _httpResponseUtil, TraderController _traderController, ConfigServer _configServer ) : IOnLoad, OnUpdate { private readonly TraderConfig _traderConfig = _configServer.GetConfig(); public Task OnLoad() { _traderController.Load(); return Task.CompletedTask; } public string GetRoute() { return "spt-traders"; } public bool OnUpdate(long _) { return _traderController.Update(); } /// /// Handle client/trading/api/traderSettings /// /// /// /// /// public string GetTraderSettings(string url, EmptyRequestData info, string sessionID) { return _httpResponseUtil.GetBody(_traderController.GetAllTraders(sessionID)); } /// /// Handle client/trading/api/getTrader /// /// /// /// /// public string GetTrader(string url, EmptyRequestData info, string sessionID) { var traderID = url.Replace("/client/trading/api/getTrader/", ""); return _httpResponseUtil.GetBody(_traderController.GetTrader(sessionID, traderID)); } /// /// Handle client/trading/api/getTraderAssort /// /// /// /// /// public string GetAssort(string url, EmptyRequestData info, string sessionID) { var traderID = url.Replace("/client/trading/api/getTraderAssort/", ""); return _httpResponseUtil.GetBody(_traderController.GetAssort(sessionID, traderID)); } /// /// Handle /singleplayer/moddedTraders /// /// /// /// /// public string GetModdedTraderData(string url, EmptyRequestData info, string sessionID) { return _httpResponseUtil.NoBody(_traderConfig.ModdedTraders); } }