using Core.Annotations;
using Core.Controllers;
using Core.Models.Spt.Config;
using Core.Models.Spt.Logging;
using Core.Servers;
using Core.Services;
using Core.Utils;
using Server;
namespace Core.Callbacks;
[Injectable]
public class ClientLogCallbacks(
HttpResponseUtil _httpResponseUtil,
ClientLogController _clientLogController,
ConfigServer _configServer,
LocalisationService _localisationService
// ModLoadOrder _modLoadOrder // TODO: needs implementing
)
{
///
/// Handle /singleplayer/log
///
///
///
///
///
public string ClientLog(string url, ClientLogRequest info, string sessionID)
{
_clientLogController.ClientLog(info);
return _httpResponseUtil.NullResponse();
}
///
/// Handle /singleplayer/release
///
///
public string ReleaseNotes()
{
var data = _configServer.GetConfig().Release;
data.BetaDisclaimerText = ProgramStatics.MODS()
? _localisationService.GetText("release-beta-disclaimer-mods-enabled")
: _localisationService.GetText("release-beta-disclaimer");
data.BetaDisclaimerAcceptText = _localisationService.GetText("release-beta-disclaimer-accept");
data.ServerModsLoadedText = _localisationService.GetText("release-server-mods-loaded");
data.ServerModsLoadedDebugText = _localisationService.GetText("release-server-mods-debug-message");
data.ClientModsLoadedText = _localisationService.GetText("release-plugins-loaded");
data.ClientModsLoadedDebugText = _localisationService.GetText("release-plugins-loaded-debug-message");
data.IllegalPluginsLoadedText = _localisationService.GetText("release-illegal-plugins-loaded");
data.IllegalPluginsExceptionText = _localisationService.GetText("release-illegal-plugins-exception");
data.ReleaseSummaryText = _localisationService.GetText("release-summary");
data.IsBeta = ProgramStatics.ENTRY_TYPE() == EntryType.BLEEDING_EDGE || ProgramStatics.ENTRY_TYPE() == EntryType.BLEEDING_EDGE_MODS;
data.IsModdable = ProgramStatics.MODS();
data.IsModded = false; // TODO
return _httpResponseUtil.NoBody(data);
}
///
/// Handle /singleplayer/enableBSGlogging
///
///
public string BsgLogging()
{
var data = _configServer.GetConfig().BsgLogging;
return _httpResponseUtil.NoBody(data);
}
}