Convert routers and callback sessionIds to MongoIds (#453)

Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
This commit is contained in:
Cj
2025-07-06 05:19:56 -04:00
committed by GitHub
parent 96f973e9e3
commit 0b18b7e4ba
60 changed files with 906 additions and 951 deletions
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Utils;
@@ -7,18 +8,18 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class AchievementCallbacks(
AchievementController _achievementController,
HttpResponseUtil _httpResponseUtil
AchievementController achievementController,
HttpResponseUtil httpResponseUtil
)
{
/// <summary>
/// Handle client/achievement/list
/// </summary>
/// <returns></returns>
public ValueTask<string> GetAchievements(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetAchievements(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_achievementController.GetAchievements(sessionID))
httpResponseUtil.GetBody(achievementController.GetAchievements(sessionID))
);
}
@@ -26,10 +27,10 @@ public class AchievementCallbacks(
/// Handle client/achievement/statistic
/// </summary>
/// <returns></returns>
public ValueTask<string> Statistic(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> Statistic(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_achievementController.GetAchievementStatics(sessionID))
httpResponseUtil.GetBody(achievementController.GetAchievementStatics(sessionID))
);
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Bot;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Utils;
@@ -7,19 +8,19 @@ using SPTarkov.Server.Core.Utils;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class BotCallbacks(BotController _botController, HttpResponseUtil _httpResponseUtil)
public class BotCallbacks(BotController botController, HttpResponseUtil httpResponseUtil)
{
/// <summary>
/// Handle singleplayer/settings/bot/limit
/// Is called by client to define each bot roles wave limit
/// </summary>
/// <returns></returns>
public ValueTask<string> GetBotLimit(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetBotLimit(string url, EmptyRequestData _, MongoId sessionID)
{
var splitUrl = url.Split('/');
var type = splitUrl[^1];
return new ValueTask<string>(
_httpResponseUtil.NoBody(_botController.GetBotPresetGenerationLimit(type))
httpResponseUtil.NoBody(botController.GetBotPresetGenerationLimit(type))
);
}
@@ -27,7 +28,7 @@ public class BotCallbacks(BotController _botController, HttpResponseUtil _httpRe
/// Handle singleplayer/settings/bot/difficulty
/// </summary>
/// <returns></returns>
public ValueTask<string> GetBotDifficulty(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetBotDifficulty(string url, EmptyRequestData _, MongoId sessionID)
{
var splitUrl = url.Split('/');
var type = splitUrl[^2].ToLowerInvariant();
@@ -35,12 +36,12 @@ public class BotCallbacks(BotController _botController, HttpResponseUtil _httpRe
if (difficulty == "core")
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(_botController.GetBotCoreDifficulty())
httpResponseUtil.NoBody(botController.GetBotCoreDifficulty())
);
}
return new ValueTask<string>(
_httpResponseUtil.NoBody(_botController.GetBotDifficulty(sessionID, type, difficulty))
httpResponseUtil.NoBody(botController.GetBotDifficulty(sessionID, type, difficulty))
);
}
@@ -48,10 +49,14 @@ public class BotCallbacks(BotController _botController, HttpResponseUtil _httpRe
/// Handle singleplayer/settings/bot/difficulties
/// </summary>
/// <returns></returns>
public ValueTask<string> GetAllBotDifficulties(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetAllBotDifficulties(
string url,
EmptyRequestData _,
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(_botController.GetAllBotDifficulties())
httpResponseUtil.NoBody(botController.GetAllBotDifficulties())
);
}
@@ -62,11 +67,11 @@ public class BotCallbacks(BotController _botController, HttpResponseUtil _httpRe
public ValueTask<string> GenerateBots(
string url,
GenerateBotsRequestData info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_botController.Generate(sessionID, info))
httpResponseUtil.GetBody(botController.Generate(sessionID, info))
);
}
@@ -74,11 +79,11 @@ public class BotCallbacks(BotController _botController, HttpResponseUtil _httpRe
/// Handle singleplayer/settings/bot/maxCap
/// </summary>
/// <returns></returns>
public ValueTask<string> GetBotCap(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetBotCap(string url, EmptyRequestData _, MongoId sessionID)
{
var splitUrl = url.Split('/');
var location = splitUrl[^1];
return new ValueTask<string>(_httpResponseUtil.NoBody(_botController.GetBotCap(location)));
return new ValueTask<string>(httpResponseUtil.NoBody(botController.GetBotCap(location)));
}
/// <summary>
@@ -87,6 +92,6 @@ public class BotCallbacks(BotController _botController, HttpResponseUtil _httpRe
/// <returns></returns>
public ValueTask<string> GetBotBehaviours()
{
return new ValueTask<string>(_httpResponseUtil.NoBody(_botController.GetAiBotBrainTypes()));
return new ValueTask<string>(httpResponseUtil.NoBody(botController.GetAiBotBrainTypes()));
}
}
@@ -14,15 +14,15 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable(TypePriority = OnUpdateOrder.BtrDeliveryCallbacks)]
public class BtrDeliveryCallbacks(
ISptLogger<BtrDeliveryCallbacks> _logger,
BtrDeliveryService _btrDeliveryService,
TimeUtil _timeUtil,
ConfigServer _configServer,
SaveServer _saveServer
ISptLogger<BtrDeliveryCallbacks> logger,
BtrDeliveryService btrDeliveryService,
TimeUtil timeUtil,
ConfigServer configServer,
SaveServer saveServer
) : IOnUpdate
{
private readonly BtrDeliveryConfig _btrDeliveryConfig =
_configServer.GetConfig<BtrDeliveryConfig>();
configServer.GetConfig<BtrDeliveryConfig>();
public Task<bool> OnUpdate(long secondsSinceLastRun)
{
@@ -42,7 +42,7 @@ public class BtrDeliveryCallbacks(
protected void ProcessDeliveries()
{
// Process each installed profile.
foreach (var sessionId in _saveServer.GetProfiles())
foreach (var sessionId in saveServer.GetProfiles())
{
ProcessDeliveryByProfile(sessionId.Key);
}
@@ -52,7 +52,7 @@ public class BtrDeliveryCallbacks(
/// Process delivery items of a single profile prior to being given back to the player through the mail service
/// </summary>
/// <param name="sessionId">Player id</param>
public void ProcessDeliveryByProfile(string sessionId)
public void ProcessDeliveryByProfile(MongoId sessionId)
{
// Filter out items that don't need to be processed yet.
var toBeProcessed = FilterDeliveryItems(sessionId);
@@ -71,16 +71,16 @@ public class BtrDeliveryCallbacks(
/// </summary>
/// <param name="sessionId">Session/Player id</param>
/// <returns>All delivery items that are ready to be processed</returns>
protected List<BtrDelivery> FilterDeliveryItems(string sessionId)
protected List<BtrDelivery> FilterDeliveryItems(MongoId sessionId)
{
var currentTime = _timeUtil.GetTimeStamp();
var currentTime = timeUtil.GetTimeStamp();
var deliveryList = _saveServer.GetProfile(sessionId).BtrDeliveryList;
var deliveryList = saveServer.GetProfile(sessionId).BtrDeliveryList;
if (deliveryList != null && deliveryList!.Count > 0)
{
if (_logger.IsLogEnabled(LogLevel.Debug))
if (logger.IsLogEnabled(LogLevel.Debug))
{
_logger.Debug(
logger.Debug(
$"Found {deliveryList.Count} BTR delivery package(s) in profile {sessionId}"
);
}
@@ -97,11 +97,11 @@ public class BtrDeliveryCallbacks(
/// </summary>
/// <param name="packagesToBeDelivered">The delivery items to process</param>
/// <param name="sessionId">session ID that should receive the processed items</param>
protected void ProcessDeliveryItems(List<BtrDelivery> packagesToBeDelivered, string sessionId)
protected void ProcessDeliveryItems(List<BtrDelivery> packagesToBeDelivered, MongoId sessionId)
{
if (_logger.IsLogEnabled(LogLevel.Debug))
if (logger.IsLogEnabled(LogLevel.Debug))
{
_logger.Debug(
logger.Debug(
$"Processing {packagesToBeDelivered.Count} BTR delivery package(s), which include a total of: {packagesToBeDelivered.Select(items => items.Items).Count()} items, in profile: {sessionId}"
);
}
@@ -115,10 +115,10 @@ public class BtrDeliveryCallbacks(
// Update the delivery items to have the new root parent ID for root/orphaned items
package.Items = package.Items.AdoptOrphanedItems(rootItemParentId);
_btrDeliveryService.SendBTRDelivery(sessionId, package.Items);
btrDeliveryService.SendBTRDelivery(sessionId, package.Items);
// Remove the fully processed BTR delivery package from the profile.
_btrDeliveryService.RemoveBTRDeliveryPackageFromProfile(sessionId, package);
btrDeliveryService.RemoveBTRDeliveryPackageFromProfile(sessionId, package);
}
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Builds;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.PresetBuild;
@@ -8,16 +9,16 @@ using SPTarkov.Server.Core.Utils;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class BuildsCallbacks(HttpResponseUtil _httpResponseUtil, BuildController _buildController)
public class BuildsCallbacks(HttpResponseUtil httpResponseUtil, BuildController buildController)
{
/// <summary>
/// Handle client/builds/list
/// </summary>
/// <returns></returns>
public ValueTask<string> GetBuilds(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetBuilds(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_buildController.GetUserBuilds(sessionID))
httpResponseUtil.GetBody(buildController.GetUserBuilds(sessionID))
);
}
@@ -31,11 +32,11 @@ public class BuildsCallbacks(HttpResponseUtil _httpResponseUtil, BuildController
public ValueTask<string> CreateMagazineTemplate(
string url,
SetMagazineRequest request,
string sessionID
MongoId sessionID
)
{
_buildController.CreateMagazineTemplate(sessionID, request);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
buildController.CreateMagazineTemplate(sessionID, request);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -45,11 +46,11 @@ public class BuildsCallbacks(HttpResponseUtil _httpResponseUtil, BuildController
public ValueTask<string> SetWeapon(
string url,
PresetBuildActionRequestData request,
string sessionID
MongoId sessionID
)
{
_buildController.SaveWeaponBuild(sessionID, request);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
buildController.SaveWeaponBuild(sessionID, request);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -59,11 +60,11 @@ public class BuildsCallbacks(HttpResponseUtil _httpResponseUtil, BuildController
public ValueTask<string> SetEquipment(
string url,
PresetBuildActionRequestData request,
string sessionID
MongoId sessionID
)
{
_buildController.SaveEquipmentBuild(sessionID, request);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
buildController.SaveEquipmentBuild(sessionID, request);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -73,10 +74,10 @@ public class BuildsCallbacks(HttpResponseUtil _httpResponseUtil, BuildController
public ValueTask<string> DeleteBuild(
string url,
RemoveBuildRequestData request,
string sessionID
MongoId sessionID
)
{
_buildController.RemoveBuild(sessionID, request);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
buildController.RemoveBuild(sessionID, request);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
}
@@ -1,27 +1,28 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Loaders;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Utils;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class BundleCallbacks(HttpResponseUtil _httpResponseUtil, BundleLoader _bundleLoader)
public class BundleCallbacks(HttpResponseUtil httpResponseUtil, BundleLoader bundleLoader)
{
/// <summary>
/// Handle singleplayer/bundles
/// </summary>
/// <returns></returns>
public ValueTask<string> GetBundles(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetBundles(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.NoBody(_bundleLoader.GetBundles()));
return new ValueTask<string>(httpResponseUtil.NoBody(bundleLoader.GetBundles()));
}
/// <summary>
/// TODO: what does it do
/// </summary>
/// <returns></returns>
public ValueTask<string> GetBundle(string url, object info, string sessionID)
public ValueTask<string> GetBundle(string url, object info, MongoId sessionID)
{
return new ValueTask<string>("BUNDLE");
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Enums;
using SPTarkov.Server.Core.Models.Spt.Config;
using SPTarkov.Server.Core.Models.Spt.Logging;
@@ -12,21 +13,21 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class ClientLogCallbacks(
HttpResponseUtil _httpResponseUtil,
ClientLogController _clientLogController,
ConfigServer _configServer,
ServerLocalisationService _serverLocalisationService,
IReadOnlyList<SptMod> _loadedMods
HttpResponseUtil httpResponseUtil,
ClientLogController clientLogController,
ConfigServer configServer,
ServerLocalisationService serverLocalisationService,
IReadOnlyList<SptMod> loadedMods
)
{
/// <summary>
/// Handle /singleplayer/log
/// </summary>
/// <returns></returns>
public ValueTask<string> ClientLog(string url, ClientLogRequest request, string sessionID)
public ValueTask<string> ClientLog(string url, ClientLogRequest request, MongoId sessionID)
{
_clientLogController.ClientLog(request);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
clientLogController.ClientLog(request);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -35,38 +36,36 @@ public class ClientLogCallbacks(
/// <returns></returns>
public ValueTask<string> ReleaseNotes()
{
var data = _configServer.GetConfig<CoreConfig>().Release;
var data = configServer.GetConfig<CoreConfig>().Release;
data.BetaDisclaimerText = ProgramStatics.MODS()
? _serverLocalisationService.GetText("release-beta-disclaimer-mods-enabled")
: _serverLocalisationService.GetText("release-beta-disclaimer");
? serverLocalisationService.GetText("release-beta-disclaimer-mods-enabled")
: serverLocalisationService.GetText("release-beta-disclaimer");
data.BetaDisclaimerAcceptText = _serverLocalisationService.GetText(
data.BetaDisclaimerAcceptText = serverLocalisationService.GetText(
"release-beta-disclaimer-accept"
);
data.ServerModsLoadedText = _serverLocalisationService.GetText(
"release-server-mods-loaded"
);
data.ServerModsLoadedDebugText = _serverLocalisationService.GetText(
data.ServerModsLoadedText = serverLocalisationService.GetText("release-server-mods-loaded");
data.ServerModsLoadedDebugText = serverLocalisationService.GetText(
"release-server-mods-debug-message"
);
data.ClientModsLoadedText = _serverLocalisationService.GetText("release-plugins-loaded");
data.ClientModsLoadedDebugText = _serverLocalisationService.GetText(
data.ClientModsLoadedText = serverLocalisationService.GetText("release-plugins-loaded");
data.ClientModsLoadedDebugText = serverLocalisationService.GetText(
"release-plugins-loaded-debug-message"
);
data.IllegalPluginsLoadedText = _serverLocalisationService.GetText(
data.IllegalPluginsLoadedText = serverLocalisationService.GetText(
"release-illegal-plugins-loaded"
);
data.IllegalPluginsExceptionText = _serverLocalisationService.GetText(
data.IllegalPluginsExceptionText = serverLocalisationService.GetText(
"release-illegal-plugins-exception"
);
data.ReleaseSummaryText = _serverLocalisationService.GetText("release-summary");
data.ReleaseSummaryText = serverLocalisationService.GetText("release-summary");
data.IsBeta =
ProgramStatics.ENTRY_TYPE() is EntryType.BLEEDING_EDGE or EntryType.BLEEDING_EDGE_MODS;
data.IsModdable = ProgramStatics.MODS();
data.IsModded = _loadedMods.Count > 0;
data.IsModded = loadedMods.Count > 0;
return new ValueTask<string>(_httpResponseUtil.NoBody(data));
return new ValueTask<string>(httpResponseUtil.NoBody(data));
}
/// <summary>
@@ -75,7 +74,7 @@ public class ClientLogCallbacks(
/// <returns></returns>
public ValueTask<string> BsgLogging()
{
var data = _configServer.GetConfig<CoreConfig>().BsgLogging;
return new ValueTask<string>(_httpResponseUtil.NoBody(data));
var data = configServer.GetConfig<CoreConfig>().BsgLogging;
return new ValueTask<string>(httpResponseUtil.NoBody(data));
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Customization;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -22,7 +23,7 @@ public class CustomizationCallbacks(
public ValueTask<string> GetCustomisationUnlocks(
string url,
EmptyRequestData _,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
@@ -34,7 +35,7 @@ public class CustomizationCallbacks(
/// Handle client/trading/customization
/// </summary>
/// <returns></returns>
public ValueTask<string> GetTraderSuits(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetTraderSuits(string url, EmptyRequestData _, MongoId sessionID)
{
var splitUrl = url.Split('/');
var traderId = splitUrl[^3];
@@ -51,7 +52,7 @@ public class CustomizationCallbacks(
public ItemEventRouterResponse BuyCustomisation(
PmcData pmcData,
BuyClothingRequestData request,
string sessionID
MongoId sessionID
)
{
return _customizationController.BuyCustomisation(pmcData, request, sessionID);
@@ -64,7 +65,7 @@ public class CustomizationCallbacks(
public ValueTask<string> GetHideoutCustomisation(
string url,
EmptyRequestData _,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
@@ -76,7 +77,7 @@ public class CustomizationCallbacks(
/// Handle client/customization/storage
/// </summary>
/// <returns></returns>
public ValueTask<string> GetStorage(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetStorage(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_customizationController.GetCustomisationStorage(sessionID))
@@ -90,7 +91,7 @@ public class CustomizationCallbacks(
public ItemEventRouterResponse SetCustomisation(
PmcData pmcData,
CustomizationSetRequest request,
string sessionID
MongoId sessionID
)
{
return _customizationController.SetCustomisation(sessionID, request, pmcData);
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Services;
using SPTarkov.Server.Core.Utils;
@@ -8,20 +9,20 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class DataCallbacks(
HttpResponseUtil _httpResponseUtil,
DatabaseService _databaseService,
TraderController _traderController,
HideoutController _hideoutController,
LocaleService _localeService
HttpResponseUtil httpResponseUtil,
DatabaseService databaseService,
TraderController traderController,
HideoutController hideoutController,
LocaleService localeService
)
{
/// <summary>
/// Handle client/settings
/// </summary>
/// <returns></returns>
public ValueTask<string> GetSettings(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetSettings(string url, EmptyRequestData _, MongoId sessionID)
{
var returns = _httpResponseUtil.GetBody(_databaseService.GetSettings());
var returns = httpResponseUtil.GetBody(databaseService.GetSettings());
return new ValueTask<string>(returns);
}
@@ -29,10 +30,10 @@ public class DataCallbacks(
/// Handle client/globals
/// </summary>
/// <returns></returns>
public ValueTask<string> GetGlobals(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetGlobals(string url, EmptyRequestData _, MongoId sessionID)
{
var globals = _databaseService.GetGlobals();
var returns = _httpResponseUtil.GetBody(globals);
var globals = databaseService.GetGlobals();
var returns = httpResponseUtil.GetBody(globals);
return new ValueTask<string>(returns);
}
@@ -41,30 +42,28 @@ public class DataCallbacks(
/// Handle client/items
/// </summary>
/// <returns></returns>
public ValueTask<string> GetTemplateItems(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetTemplateItems(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetUnclearedBody(_databaseService.GetItems())
);
return new ValueTask<string>(httpResponseUtil.GetUnclearedBody(databaseService.GetItems()));
}
/// <summary>
/// Handle client/handbook/templates
/// </summary>
/// <returns></returns>
public ValueTask<string> GetTemplateHandbook(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetTemplateHandbook(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(_databaseService.GetHandbook()));
return new ValueTask<string>(httpResponseUtil.GetBody(databaseService.GetHandbook()));
}
/// <summary>
/// Handle client/customization
/// </summary>
/// <returns></returns>
public ValueTask<string> GetTemplateSuits(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetTemplateSuits(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_databaseService.GetTemplates().Customization)
httpResponseUtil.GetBody(databaseService.GetTemplates().Customization)
);
}
@@ -72,10 +71,10 @@ public class DataCallbacks(
/// Handle client/account/customization
/// </summary>
/// <returns></returns>
public ValueTask<string> GetTemplateCharacter(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetTemplateCharacter(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_databaseService.GetTemplates().Character)
httpResponseUtil.GetBody(databaseService.GetTemplates().Character)
);
}
@@ -83,10 +82,10 @@ public class DataCallbacks(
/// Handle client/hideout/settings
/// </summary>
/// <returns></returns>
public ValueTask<string> GetHideoutSettings(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetHideoutSettings(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_databaseService.GetHideout().Settings)
httpResponseUtil.GetBody(databaseService.GetHideout().Settings)
);
}
@@ -94,21 +93,19 @@ public class DataCallbacks(
/// Handle client/hideout/areas
/// </summary>
/// <returns></returns>
public ValueTask<string> GetHideoutAreas(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetHideoutAreas(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_databaseService.GetHideout().Areas)
);
return new ValueTask<string>(httpResponseUtil.GetBody(databaseService.GetHideout().Areas));
}
/// <summary>
/// Handle client/hideout/production/recipes
/// </summary>
/// <returns></returns>
public ValueTask<string> GetHideoutProduction(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetHideoutProduction(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_databaseService.GetHideout().Production)
httpResponseUtil.GetBody(databaseService.GetHideout().Production)
);
}
@@ -116,10 +113,10 @@ public class DataCallbacks(
/// Handle client/languages
/// </summary>
/// <returns></returns>
public ValueTask<string> GetLocalesLanguages(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetLocalesLanguages(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_databaseService.GetLocales().Languages)
httpResponseUtil.GetBody(databaseService.GetLocales().Languages)
);
}
@@ -127,10 +124,10 @@ public class DataCallbacks(
/// Handle client/menu/locale
/// </summary>
/// <returns></returns>
public ValueTask<string> GetLocalesMenu(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetLocalesMenu(string url, EmptyRequestData _, MongoId sessionID)
{
var localeId = url.Replace("/client/menu/locale/", "");
var locales = _databaseService.GetLocales();
var locales = databaseService.GetLocales();
var result =
locales.Menu?[localeId] ?? locales.Menu?.FirstOrDefault(m => m.Key == "en").Value;
@@ -139,29 +136,29 @@ public class DataCallbacks(
throw new Exception($"Unable to determine locale for request with {localeId}");
}
return new ValueTask<string>(_httpResponseUtil.GetBody(result));
return new ValueTask<string>(httpResponseUtil.GetBody(result));
}
/// <summary>
/// Handle client/locale
/// </summary>
/// <returns></returns>
public ValueTask<string> GetLocalesGlobal(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetLocalesGlobal(string url, EmptyRequestData _, MongoId sessionID)
{
var localeId = url.Replace("/client/locale/", "");
var locales = _localeService.GetLocaleDb(localeId);
var locales = localeService.GetLocaleDb(localeId);
return new ValueTask<string>(_httpResponseUtil.GetUnclearedBody(locales));
return new ValueTask<string>(httpResponseUtil.GetUnclearedBody(locales));
}
/// <summary>
/// Handle client/hideout/qte/list
/// </summary>
/// <returns></returns>
public ValueTask<string> GetQteList(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetQteList(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetUnclearedBody(_hideoutController.GetQteList(sessionID))
httpResponseUtil.GetUnclearedBody(hideoutController.GetQteList(sessionID))
);
}
@@ -169,12 +166,12 @@ public class DataCallbacks(
/// Handle client/items/prices/
/// </summary>
/// <returns></returns>
public ValueTask<string> GetItemPrices(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetItemPrices(string url, EmptyRequestData _, MongoId sessionID)
{
var traderId = url.Replace("/client/items/prices/", "");
return new ValueTask<string>(
_httpResponseUtil.GetBody(_traderController.GetItemPrices(sessionID, traderId))
httpResponseUtil.GetBody(traderController.GetItemPrices(sessionID, traderId))
);
}
}
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.Dialog;
@@ -10,14 +11,14 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable(TypePriority = OnUpdateOrder.DialogueCallbacks)]
public class DialogueCallbacks(
TimeUtil _timeUtil,
HttpResponseUtil _httpResponseUtil,
DialogueController _dialogueController
TimeUtil timeUtil,
HttpResponseUtil httpResponseUtil,
DialogueController dialogueController
) : IOnUpdate
{
public Task<bool> OnUpdate(long timeSinceLastRun)
{
_dialogueController.Update();
dialogueController.Update();
return Task.FromResult(true);
}
@@ -25,10 +26,14 @@ public class DialogueCallbacks(
/// Handle client/friend/list
/// </summary>
/// <returns></returns>
public virtual ValueTask<string> GetFriendList(string url, EmptyRequestData _, string sessionID)
public virtual ValueTask<string> GetFriendList(
string url,
EmptyRequestData _,
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_dialogueController.GetFriendList(sessionID))
httpResponseUtil.GetBody(dialogueController.GetFriendList(sessionID))
);
}
@@ -39,7 +44,7 @@ public class DialogueCallbacks(
public virtual ValueTask<string> GetChatServerList(
string url,
GetChatServerListRequestData request,
string sessionID
MongoId sessionID
)
{
var chatServer = new List<ChatServer>
@@ -48,7 +53,7 @@ public class DialogueCallbacks(
{
Id = new Models.Common.MongoId(),
RegistrationId = 20,
DateTime = _timeUtil.GetTimeStamp(),
DateTime = timeUtil.GetTimeStamp(),
IsDeveloper = true,
Regions = ["EUR"],
VersionId = request.VersionId,
@@ -58,7 +63,7 @@ public class DialogueCallbacks(
},
};
return new ValueTask<string>(_httpResponseUtil.GetBody(chatServer));
return new ValueTask<string>(httpResponseUtil.GetBody(chatServer));
}
/// <summary>
@@ -69,12 +74,12 @@ public class DialogueCallbacks(
public virtual ValueTask<string> GetMailDialogList(
string url,
GetMailDialogListRequestData request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(
_dialogueController.GenerateDialogueList(sessionID),
httpResponseUtil.GetBody(
dialogueController.GenerateDialogueList(sessionID),
0,
null,
false
@@ -92,12 +97,12 @@ public class DialogueCallbacks(
public virtual ValueTask<string> GetMailDialogView(
string url,
GetMailDialogViewRequestData request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(
_dialogueController.GenerateDialogueView(request, sessionID),
httpResponseUtil.GetBody(
dialogueController.GenerateDialogueView(request, sessionID),
0,
null,
false
@@ -112,12 +117,12 @@ public class DialogueCallbacks(
public virtual ValueTask<string> GetMailDialogInfo(
string url,
GetMailDialogInfoRequestData request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(
_dialogueController.GetDialogueInfo(request.DialogId, sessionID)
httpResponseUtil.GetBody(
dialogueController.GetDialogueInfo(request.DialogId, sessionID)
)
);
}
@@ -129,11 +134,11 @@ public class DialogueCallbacks(
public virtual ValueTask<string> RemoveDialog(
string url,
RemoveDialogRequestData request,
string sessionID
MongoId sessionID
)
{
_dialogueController.RemoveDialogue(request.DialogId, sessionID);
return new ValueTask<string>(_httpResponseUtil.EmptyArrayResponse());
dialogueController.RemoveDialogue(request.DialogId, sessionID);
return new ValueTask<string>(httpResponseUtil.EmptyArrayResponse());
}
/// <summary>
@@ -143,11 +148,11 @@ public class DialogueCallbacks(
public virtual ValueTask<string> PinDialog(
string url,
PinDialogRequestData request,
string sessionID
MongoId sessionID
)
{
_dialogueController.SetDialoguePin(request.DialogId, true, sessionID);
return new ValueTask<string>(_httpResponseUtil.EmptyArrayResponse());
dialogueController.SetDialoguePin(request.DialogId, true, sessionID);
return new ValueTask<string>(httpResponseUtil.EmptyArrayResponse());
}
/// <summary>
@@ -157,11 +162,11 @@ public class DialogueCallbacks(
public virtual ValueTask<string> UnpinDialog(
string url,
PinDialogRequestData request,
string sessionID
MongoId sessionID
)
{
_dialogueController.SetDialoguePin(request.DialogId, false, sessionID);
return new ValueTask<string>(_httpResponseUtil.EmptyArrayResponse());
dialogueController.SetDialoguePin(request.DialogId, false, sessionID);
return new ValueTask<string>(httpResponseUtil.EmptyArrayResponse());
}
/// <summary>
@@ -171,11 +176,11 @@ public class DialogueCallbacks(
public virtual ValueTask<string> SetRead(
string url,
SetDialogReadRequestData request,
string sessionID
MongoId sessionID
)
{
_dialogueController.SetRead(request.Dialogs, sessionID);
return new ValueTask<string>(_httpResponseUtil.EmptyArrayResponse());
dialogueController.SetRead(request.Dialogs, sessionID);
return new ValueTask<string>(httpResponseUtil.EmptyArrayResponse());
}
/// <summary>
@@ -185,12 +190,12 @@ public class DialogueCallbacks(
public virtual ValueTask<string> GetAllAttachments(
string url,
GetAllAttachmentsRequestData request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(
_dialogueController.GetAllAttachments(request.DialogId, sessionID)
httpResponseUtil.GetBody(
dialogueController.GetAllAttachments(request.DialogId, sessionID)
)
);
}
@@ -202,28 +207,28 @@ public class DialogueCallbacks(
public virtual async ValueTask<string> SendMessage(
string url,
SendMessageRequest request,
string sessionID
MongoId sessionID
)
{
return _httpResponseUtil.GetBody(await _dialogueController.SendMessage(sessionID, request));
return httpResponseUtil.GetBody(await dialogueController.SendMessage(sessionID, request));
}
/// <summary>
/// Handle client/friend/request/list/outbox
/// </summary>
/// <returns></returns>
public virtual ValueTask<string> ListOutbox(string url, EmptyRequestData _, string sessionID)
public virtual ValueTask<string> ListOutbox(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.EmptyArrayResponse());
return new ValueTask<string>(httpResponseUtil.EmptyArrayResponse());
}
/// <summary>
/// Handle client/friend/request/list/inbox
/// </summary>
/// <returns></returns>
public virtual ValueTask<string> ListInbox(string url, EmptyRequestData _, string sessionID)
public virtual ValueTask<string> ListInbox(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.EmptyArrayResponse());
return new ValueTask<string>(httpResponseUtil.EmptyArrayResponse());
}
/// <summary>
@@ -233,11 +238,11 @@ public class DialogueCallbacks(
public virtual ValueTask<string> SendFriendRequest(
string url,
FriendRequestData request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_dialogueController.SendFriendRequest(sessionID, request))
httpResponseUtil.GetBody(dialogueController.SendFriendRequest(sessionID, request))
);
}
@@ -248,10 +253,10 @@ public class DialogueCallbacks(
public virtual ValueTask<string> AcceptAllFriendRequests(
string url,
EmptyRequestData _,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -261,10 +266,10 @@ public class DialogueCallbacks(
public virtual ValueTask<string> AcceptFriendRequest(
string url,
AcceptFriendRequestData request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
@@ -274,10 +279,10 @@ public class DialogueCallbacks(
public virtual ValueTask<string> DeclineFriendRequest(
string url,
DeclineFriendRequestData request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
@@ -287,10 +292,10 @@ public class DialogueCallbacks(
public virtual ValueTask<string> CancelFriendRequest(
string url,
CancelFriendRequestData request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
@@ -300,11 +305,11 @@ public class DialogueCallbacks(
public virtual ValueTask<string> DeleteFriend(
string url,
DeleteFriendRequest request,
string sessionID
MongoId sessionID
)
{
_dialogueController.DeleteFriend(sessionID, request);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
dialogueController.DeleteFriend(sessionID, request);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -314,10 +319,10 @@ public class DialogueCallbacks(
public virtual ValueTask<string> IgnoreFriend(
string url,
UIDRequestData request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -327,36 +332,36 @@ public class DialogueCallbacks(
public virtual ValueTask<string> UnIgnoreFriend(
string url,
UIDRequestData request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
public virtual ValueTask<string> ClearMail(
string url,
ClearMailMessageRequest request,
string sessionID
MongoId sessionID
)
{
_dialogueController.ClearMessages(sessionID, request);
dialogueController.ClearMessages(sessionID, request);
return new ValueTask<string>(_httpResponseUtil.EmptyArrayResponse());
return new ValueTask<string>(httpResponseUtil.EmptyArrayResponse());
}
public virtual ValueTask<string> CreateGroupMail(
string url,
CreateGroupMailRequest request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.EmptyArrayResponse());
return new ValueTask<string>(httpResponseUtil.EmptyArrayResponse());
}
public virtual ValueTask<string> ChangeMailGroupOwner(
string url,
ChangeGroupMailOwnerRequest request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>("Not Implemented!"); // Not implemented in Node
@@ -365,7 +370,7 @@ public class DialogueCallbacks(
public virtual ValueTask<string> AddUserToMail(
string url,
AddUserGroupMailRequest request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>("Not Implemented!"); // Not implemented in Node
@@ -374,7 +379,7 @@ public class DialogueCallbacks(
public virtual ValueTask<string> RemoveUserFromMail(
string url,
RemoveUserGroupMailRequest request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>("Not Implemented!"); // Not implemented in Node
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.Game;
@@ -11,16 +12,16 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable(TypePriority = OnLoadOrder.GameCallbacks)]
public class GameCallbacks(
HttpResponseUtil _httpResponseUtil,
Watermark _watermark,
SaveServer _saveServer,
GameController _gameController,
TimeUtil _timeUtil
HttpResponseUtil httpResponseUtil,
Watermark watermark,
SaveServer saveServer,
GameController gameController,
TimeUtil timeUtil
) : IOnLoad
{
public Task OnLoad()
{
_gameController.Load();
gameController.Load();
return Task.CompletedTask;
}
@@ -31,22 +32,22 @@ public class GameCallbacks(
public ValueTask<string> VersionValidate(
string url,
VersionValidateRequestData info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
/// Handle client/game/start
/// </summary>
/// <returns></returns>
public ValueTask<string> GameStart(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GameStart(string url, EmptyRequestData _, MongoId sessionID)
{
var startTimestampSec = _timeUtil.GetTimeStamp();
_gameController.GameStart(url, sessionID, startTimestampSec);
var startTimestampSec = timeUtil.GetTimeStamp();
gameController.GameStart(url, sessionID, startTimestampSec);
return new ValueTask<string>(
_httpResponseUtil.GetBody(new GameStartResponse { UtcTime = startTimestampSec })
httpResponseUtil.GetBody(new GameStartResponse { UtcTime = startTimestampSec })
);
}
@@ -55,10 +56,10 @@ public class GameCallbacks(
/// Save profiles on game close
/// </summary>
/// <returns></returns>
public async ValueTask<string> GameLogout(string url, EmptyRequestData _, string sessionID)
public async ValueTask<string> GameLogout(string url, EmptyRequestData _, MongoId sessionID)
{
await _saveServer.SaveProfileAsync(sessionID);
return _httpResponseUtil.GetBody(new GameLogoutResponseData { Status = "ok" });
await saveServer.SaveProfileAsync(sessionID);
return httpResponseUtil.GetBody(new GameLogoutResponseData { Status = "ok" });
}
/// <summary>
@@ -68,11 +69,11 @@ public class GameCallbacks(
public ValueTask<string> GetGameConfig(
string url,
GameEmptyCrcRequestData info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_gameController.GetGameConfig(sessionID))
httpResponseUtil.GetBody(gameController.GetGameConfig(sessionID))
);
}
@@ -80,19 +81,19 @@ public class GameCallbacks(
/// Handle client/putHWMetrics
/// </summary>
/// <returns></returns>
public ValueTask<string> PutHwMetrics(string url, EmptyRequestData info, string sessionID)
public ValueTask<string> PutHwMetrics(string url, EmptyRequestData info, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody<string>(null!));
return new ValueTask<string>(httpResponseUtil.GetBody<string>(null!));
}
/// <summary>
/// Handle client/game/mode
/// </summary>
/// <returns></returns>
public ValueTask<string> GetGameMode(string url, GameModeRequestData info, string sessionID)
public ValueTask<string> GetGameMode(string url, GameModeRequestData info, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_gameController.GetGameMode(sessionID, info))
httpResponseUtil.GetBody(gameController.GetGameMode(sessionID, info))
);
}
@@ -100,21 +101,19 @@ public class GameCallbacks(
/// Handle client/server/list
/// </summary>
/// <returns></returns>
public ValueTask<string> GetServer(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetServer(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_gameController.GetServer(sessionID))
);
return new ValueTask<string>(httpResponseUtil.GetBody(gameController.GetServer(sessionID)));
}
/// <summary>
/// Handle client/match/group/current
/// </summary>
/// <returns></returns>
public ValueTask<string> GetCurrentGroup(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetCurrentGroup(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_gameController.GetCurrentGroup(sessionID))
httpResponseUtil.GetBody(gameController.GetCurrentGroup(sessionID))
);
}
@@ -122,10 +121,10 @@ public class GameCallbacks(
/// Handle client/checkVersion
/// </summary>
/// <returns></returns>
public ValueTask<string> ValidateGameVersion(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> ValidateGameVersion(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_gameController.GetValidGameVersion(sessionID))
httpResponseUtil.GetBody(gameController.GetValidGameVersion(sessionID))
);
}
@@ -133,10 +132,10 @@ public class GameCallbacks(
/// Handle client/game/keepalive
/// </summary>
/// <returns></returns>
public ValueTask<string> GameKeepalive(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GameKeepalive(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_gameController.GetKeepAlive(sessionID))
httpResponseUtil.GetBody(gameController.GetKeepAlive(sessionID))
);
}
@@ -144,11 +143,11 @@ public class GameCallbacks(
/// Handle singleplayer/settings/version
/// </summary>
/// <returns></returns>
public ValueTask<string> GetVersion(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetVersion(string url, EmptyRequestData _, MongoId sessionID)
{
// change to be a proper type
return new ValueTask<string>(
_httpResponseUtil.NoBody(new { Version = _watermark.GetInGameVersionLabel() })
httpResponseUtil.NoBody(new { Version = watermark.GetInGameVersionLabel() })
);
}
@@ -156,19 +155,19 @@ public class GameCallbacks(
/// Handle /client/report/send & /client/reports/lobby/send
/// </summary>
/// <returns></returns>
public ValueTask<string> ReportNickname(string url, UIDRequestData request, string sessionID)
public ValueTask<string> ReportNickname(string url, UIDRequestData request, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
/// Handle singleplayer/settings/getRaidTime
/// </summary>
/// <returns></returns>
public ValueTask<string> GetRaidTime(string url, GetRaidTimeRequest request, string sessionID)
public ValueTask<string> GetRaidTime(string url, GetRaidTimeRequest request, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(_gameController.GetRaidTime(sessionID, request))
httpResponseUtil.NoBody(gameController.GetRaidTime(sessionID, request))
);
}
@@ -176,11 +175,9 @@ public class GameCallbacks(
/// Handle /client/survey
/// </summary>
/// <returns></returns>
public ValueTask<string> GetSurvey(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetSurvey(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_gameController.GetSurvey(sessionID))
);
return new ValueTask<string>(httpResponseUtil.GetBody(gameController.GetSurvey(sessionID)));
}
/// <summary>
@@ -190,10 +187,10 @@ public class GameCallbacks(
public ValueTask<string> GetSurveyView(
string url,
SendSurveyOpinionRequest request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -203,9 +200,9 @@ public class GameCallbacks(
public ValueTask<string> SendSurveyOpinion(
string url,
SendSurveyOpinionRequest request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
}
@@ -5,11 +5,11 @@ using SPTarkov.Server.Core.DI;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable(TypePriority = OnLoadOrder.HandbookCallbacks)]
public class HandbookCallbacks(HandBookController _handBookController) : IOnLoad
public class HandbookCallbacks(HandBookController handBookController) : IOnLoad
{
public Task OnLoad()
{
_handBookController.Load();
handBookController.Load();
return Task.CompletedTask;
}
}
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Helpers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Health;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -10,9 +11,9 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class HealthCallbacks(
HttpResponseUtil _httpResponseUtil,
ProfileHelper _profileHelper,
HealthController _healthController
HttpResponseUtil httpResponseUtil,
ProfileHelper profileHelper,
HealthController healthController
)
{
/// <summary>
@@ -22,14 +23,14 @@ public class HealthCallbacks(
/// <param name="info">HealthListener.Instance.CurrentHealth class</param>
/// <param name="sessionID">session id</param>
/// <returns>empty response, no data sent back to client</returns>
public ValueTask<string> HandleWorkoutEffects(string url, WorkoutData info, string sessionID)
public ValueTask<string> HandleWorkoutEffects(string url, WorkoutData info, MongoId sessionID)
{
_healthController.ApplyWorkoutChanges(
_profileHelper.GetPmcProfile(sessionID),
healthController.ApplyWorkoutChanges(
profileHelper.GetPmcProfile(sessionID),
info,
sessionID
);
return new ValueTask<string>(_httpResponseUtil.EmptyResponse());
return new ValueTask<string>(httpResponseUtil.EmptyResponse());
}
/// <summary>
@@ -42,10 +43,10 @@ public class HealthCallbacks(
public ItemEventRouterResponse OffraidEat(
PmcData pmcData,
OffraidEatRequestData info,
string sessionID
MongoId sessionID
)
{
return _healthController.OffRaidEat(pmcData, info, sessionID);
return healthController.OffRaidEat(pmcData, info, sessionID);
}
/// <summary>
@@ -58,10 +59,10 @@ public class HealthCallbacks(
public ItemEventRouterResponse OffraidHeal(
PmcData pmcData,
OffraidHealRequestData info,
string sessionID
MongoId sessionID
)
{
return _healthController.OffRaidHeal(pmcData, info, sessionID);
return healthController.OffRaidHeal(pmcData, info, sessionID);
}
/// <summary>
@@ -74,9 +75,9 @@ public class HealthCallbacks(
public ItemEventRouterResponse HealthTreatment(
PmcData pmcData,
HealthTreatmentRequestData info,
string sessionID
MongoId sessionID
)
{
return _healthController.HealthTreatment(pmcData, info, sessionID);
return healthController.HealthTreatment(pmcData, info, sessionID);
}
}
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Hideout;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -10,10 +11,10 @@ using SPTarkov.Server.Core.Servers;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable(TypePriority = OnUpdateOrder.HideoutCallbacks)]
public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer _configServer)
public class HideoutCallbacks(HideoutController hideoutController, ConfigServer configServer)
: IOnUpdate
{
private readonly HideoutConfig _hideoutConfig = _configServer.GetConfig<HideoutConfig>();
private readonly HideoutConfig _hideoutConfig = configServer.GetConfig<HideoutConfig>();
public Task<bool> OnUpdate(long secondsSinceLastRun)
{
@@ -23,7 +24,7 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
return Task.FromResult(false);
}
_hideoutController.Update();
hideoutController.Update();
return Task.FromResult(true);
}
@@ -34,11 +35,11 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse Upgrade(
PmcData pmcData,
HideoutUpgradeRequestData request,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_hideoutController.StartUpgrade(pmcData, request, sessionID, output);
hideoutController.StartUpgrade(pmcData, request, sessionID, output);
return output;
}
@@ -49,11 +50,11 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse UpgradeComplete(
PmcData pmcData,
HideoutUpgradeCompleteRequestData request,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_hideoutController.UpgradeComplete(pmcData, request, sessionID, output);
hideoutController.UpgradeComplete(pmcData, request, sessionID, output);
return output;
}
@@ -64,10 +65,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse PutItemsInAreaSlots(
PmcData pmcData,
HideoutPutItemInRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.PutItemsInAreaSlots(pmcData, request, sessionID);
return hideoutController.PutItemsInAreaSlots(pmcData, request, sessionID);
}
/// <summary>
@@ -76,10 +77,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse TakeItemsFromAreaSlots(
PmcData pmcData,
HideoutTakeItemOutRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.TakeItemsFromAreaSlots(pmcData, request, sessionID);
return hideoutController.TakeItemsFromAreaSlots(pmcData, request, sessionID);
}
/// <summary>
@@ -88,10 +89,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse ToggleArea(
PmcData pmcData,
HideoutToggleAreaRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.ToggleArea(pmcData, request, sessionID);
return hideoutController.ToggleArea(pmcData, request, sessionID);
}
/// <summary>
@@ -100,10 +101,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse SingleProductionStart(
PmcData pmcData,
HideoutSingleProductionStartRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.SingleProductionStart(pmcData, request, sessionID);
return hideoutController.SingleProductionStart(pmcData, request, sessionID);
}
/// <summary>
@@ -112,10 +113,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse ScavCaseProductionStart(
PmcData pmcData,
HideoutScavCaseStartRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.ScavCaseProductionStart(pmcData, request, sessionID);
return hideoutController.ScavCaseProductionStart(pmcData, request, sessionID);
}
/// <summary>
@@ -124,10 +125,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse ContinuousProductionStart(
PmcData pmcData,
HideoutContinuousProductionStartRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.ContinuousProductionStart(pmcData, request, sessionID);
return hideoutController.ContinuousProductionStart(pmcData, request, sessionID);
}
/// <summary>
@@ -136,10 +137,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse TakeProduction(
PmcData pmcData,
HideoutTakeProductionRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.TakeProduction(pmcData, request, sessionID);
return hideoutController.TakeProduction(pmcData, request, sessionID);
}
/// <summary>
@@ -148,11 +149,11 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse HandleQTEEvent(
PmcData pmcData,
HandleQTEEventRequestData request,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_hideoutController.HandleQTEEventOutcome(sessionID, pmcData, request, output);
hideoutController.HandleQTEEventOutcome(sessionID, pmcData, request, output);
return output;
}
@@ -163,11 +164,11 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse RecordShootingRangePoints(
PmcData pmcData,
RecordShootingRangePoints request,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_hideoutController.RecordShootingRangePoints(sessionID, pmcData, request);
hideoutController.RecordShootingRangePoints(sessionID, pmcData, request);
return output;
}
@@ -178,10 +179,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse ImproveArea(
PmcData pmcData,
HideoutImproveAreaRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.ImproveArea(sessionID, pmcData, request);
return hideoutController.ImproveArea(sessionID, pmcData, request);
}
/// <summary>
@@ -190,10 +191,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse CancelProduction(
PmcData pmcData,
HideoutCancelProductionRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.CancelProduction(sessionID, pmcData, request);
return hideoutController.CancelProduction(sessionID, pmcData, request);
}
/// <summary>
@@ -202,10 +203,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse CicleOfCultistProductionStart(
PmcData pmcData,
HideoutCircleOfCultistProductionStartRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.CicleOfCultistProductionStart(sessionID, pmcData, request);
return hideoutController.CicleOfCultistProductionStart(sessionID, pmcData, request);
}
/// <summary>
@@ -214,10 +215,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse HideoutDeleteProductionCommand(
PmcData pmcData,
HideoutDeleteProductionRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.HideoutDeleteProductionCommand(sessionID, pmcData, request);
return hideoutController.HideoutDeleteProductionCommand(sessionID, pmcData, request);
}
/// <summary>
@@ -226,10 +227,10 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse HideoutCustomizationApplyCommand(
PmcData pmcData,
HideoutCustomizationApplyRequestData request,
string sessionID
MongoId sessionID
)
{
return _hideoutController.HideoutCustomizationApply(sessionID, pmcData, request);
return hideoutController.HideoutCustomizationApply(sessionID, pmcData, request);
}
/// <summary>
@@ -239,9 +240,9 @@ public class HideoutCallbacks(HideoutController _hideoutController, ConfigServer
public ItemEventRouterResponse HideoutCustomizationSetMannequinPose(
PmcData pmcData,
HideoutCustomizationSetMannequinPoseRequest request,
string sessionId
MongoId sessionId
)
{
return _hideoutController.HideoutCustomizationSetMannequinPose(sessionId, pmcData, request);
return hideoutController.HideoutCustomizationSetMannequinPose(sessionId, pmcData, request);
}
}
@@ -5,11 +5,11 @@ using SPTarkov.Server.Core.Servers;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable(InjectionType.Singleton, TypePriority = OnLoadOrder.HttpCallbacks)]
public class HttpCallbacks(HttpServer _httpServer) : IOnLoad
public class HttpCallbacks(HttpServer httpServer) : IOnLoad
{
public Task OnLoad()
{
_httpServer.Load();
httpServer.Load();
return Task.CompletedTask;
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.InRaid;
using SPTarkov.Server.Core.Utils;
@@ -7,7 +8,7 @@ using SPTarkov.Server.Core.Utils;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class InraidCallbacks(InRaidController _inRaidController, HttpResponseUtil _httpResponseUtil)
public class InraidCallbacks(InRaidController inRaidController, HttpResponseUtil httpResponseUtil)
{
/// <summary>
/// Handle client/location/getLocalloot
@@ -20,11 +21,11 @@ public class InraidCallbacks(InRaidController _inRaidController, HttpResponseUti
public ValueTask<string> RegisterPlayer(
string url,
RegisterPlayerRequestData info,
string sessionID
MongoId sessionID
)
{
_inRaidController.AddPlayer(sessionID, info);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
inRaidController.AddPlayer(sessionID, info);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -34,10 +35,10 @@ public class InraidCallbacks(InRaidController _inRaidController, HttpResponseUti
/// <param name="info">Save progress request</param>
/// <param name="sessionID">Session id</param>
/// <returns>Null http response</returns>
public ValueTask<string> SaveProgress(string url, ScavSaveRequestData info, string sessionID)
public ValueTask<string> SaveProgress(string url, ScavSaveRequestData info, MongoId sessionID)
{
_inRaidController.SavePostRaidProfileForScav(info, sessionID);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
inRaidController.SavePostRaidProfileForScav(info, sessionID);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -47,7 +48,7 @@ public class InraidCallbacks(InRaidController _inRaidController, HttpResponseUti
public ValueTask<string> GetRaidMenuSettings()
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(_inRaidController.GetInRaidConfig().RaidMenuSettings)
httpResponseUtil.NoBody(inRaidController.GetInRaidConfig().RaidMenuSettings)
);
}
@@ -58,11 +59,11 @@ public class InraidCallbacks(InRaidController _inRaidController, HttpResponseUti
public ValueTask<string> GetTraitorScavHostileChance(
string url,
EmptyRequestData _,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(_inRaidController.GetTraitorScavHostileChance(url, sessionID))
httpResponseUtil.NoBody(inRaidController.GetTraitorScavHostileChance(url, sessionID))
);
}
@@ -70,10 +71,10 @@ public class InraidCallbacks(InRaidController _inRaidController, HttpResponseUti
/// Handle singleplayer/bosstypes
/// </summary>
/// <returns></returns>
public ValueTask<string> GetBossTypes(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetBossTypes(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(_inRaidController.GetBossTypes(url, sessionID))
httpResponseUtil.NoBody(inRaidController.GetBossTypes(url, sessionID))
);
}
}
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Insurance;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -12,12 +13,12 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable(TypePriority = OnUpdateOrder.InsuranceCallbacks)]
public class InsuranceCallbacks(
InsuranceController _insuranceController,
HttpResponseUtil _httpResponseUtil,
ConfigServer _configServer
InsuranceController insuranceController,
HttpResponseUtil httpResponseUtil,
ConfigServer configServer
) : IOnUpdate
{
private readonly InsuranceConfig _insuranceConfig = _configServer.GetConfig<InsuranceConfig>();
private readonly InsuranceConfig _insuranceConfig = configServer.GetConfig<InsuranceConfig>();
public Task<bool> OnUpdate(long secondsSinceLastRun)
{
@@ -26,7 +27,7 @@ public class InsuranceCallbacks(
return Task.FromResult(false);
}
_insuranceController.ProcessReturn();
insuranceController.ProcessReturn();
return Task.FromResult(true);
}
@@ -41,11 +42,11 @@ public class InsuranceCallbacks(
public ValueTask<string> GetInsuranceCost(
string url,
GetInsuranceCostRequestData info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_insuranceController.Cost(info, sessionID))
httpResponseUtil.GetBody(insuranceController.Cost(info, sessionID))
);
}
@@ -56,8 +57,12 @@ public class InsuranceCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ItemEventRouterResponse Insure(PmcData pmcData, InsureRequestData info, string sessionID)
public ItemEventRouterResponse Insure(
PmcData pmcData,
InsureRequestData info,
MongoId sessionID
)
{
return _insuranceController.Insure(pmcData, info, sessionID);
return insuranceController.Insure(pmcData, info, sessionID);
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Inventory;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -9,8 +10,8 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class InventoryCallbacks(
InventoryController _inventoryController,
QuestController _questController
InventoryController inventoryController,
QuestController questController
)
{
/// <summary>
@@ -24,11 +25,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse MoveItem(
PmcData pmcData,
InventoryMoveRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.MoveItem(pmcData, info, sessionID, output);
inventoryController.MoveItem(pmcData, info, sessionID, output);
return output;
}
@@ -43,11 +44,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse RemoveItem(
PmcData pmcData,
InventoryRemoveRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.DiscardItem(pmcData, info, sessionID, output);
inventoryController.DiscardItem(pmcData, info, sessionID, output);
return output;
}
@@ -62,11 +63,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse SplitItem(
PmcData pmcData,
InventorySplitRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.SplitItem(pmcData, info, sessionID, output);
inventoryController.SplitItem(pmcData, info, sessionID, output);
return output;
}
@@ -80,11 +81,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse MergeItem(
PmcData pmcData,
InventoryMergeRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.MergeItem(pmcData, info, sessionID, output);
inventoryController.MergeItem(pmcData, info, sessionID, output);
return output;
}
@@ -98,11 +99,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse TransferItem(
PmcData pmcData,
InventoryTransferRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.TransferItem(pmcData, info, sessionID, output);
inventoryController.TransferItem(pmcData, info, sessionID, output);
return output;
}
@@ -116,10 +117,10 @@ public class InventoryCallbacks(
public ItemEventRouterResponse SwapItem(
PmcData pmcData,
InventorySwapRequestData info,
string sessionID
MongoId sessionID
)
{
return _inventoryController.SwapItem(pmcData, info, sessionID);
return inventoryController.SwapItem(pmcData, info, sessionID);
}
/// <summary>
@@ -131,10 +132,10 @@ public class InventoryCallbacks(
public ItemEventRouterResponse FoldItem(
PmcData pmcData,
InventoryFoldRequestData info,
string sessionID
MongoId sessionID
)
{
return _inventoryController.FoldItem(pmcData, info, sessionID);
return inventoryController.FoldItem(pmcData, info, sessionID);
}
/// <summary>
@@ -146,10 +147,10 @@ public class InventoryCallbacks(
public ItemEventRouterResponse ToggleItem(
PmcData pmcData,
InventoryToggleRequestData info,
string sessionID
MongoId sessionID
)
{
return _inventoryController.ToggleItem(pmcData, info, sessionID);
return inventoryController.ToggleItem(pmcData, info, sessionID);
}
/// <summary>
@@ -161,10 +162,10 @@ public class InventoryCallbacks(
public ItemEventRouterResponse TagItem(
PmcData pmcData,
InventoryTagRequestData request,
string sessionId
MongoId sessionId
)
{
return _inventoryController.TagItem(pmcData, request, sessionId);
return inventoryController.TagItem(pmcData, request, sessionId);
}
/// <summary>
@@ -177,11 +178,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse BindItem(
PmcData pmcData,
InventoryBindRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.BindItem(pmcData, info, sessionID, output);
inventoryController.BindItem(pmcData, info, sessionID, output);
return output;
}
@@ -195,11 +196,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse UnBindItem(
PmcData pmcData,
InventoryBindRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.UnBindItem(pmcData, info, sessionID, output);
inventoryController.UnBindItem(pmcData, info, sessionID, output);
return output;
}
@@ -213,11 +214,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse ExamineItem(
PmcData pmcData,
InventoryExamineRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.ExamineItem(pmcData, info, sessionID, output);
inventoryController.ExamineItem(pmcData, info, sessionID, output);
return output;
}
@@ -231,10 +232,10 @@ public class InventoryCallbacks(
public ItemEventRouterResponse ReadEncyclopedia(
PmcData pmcData,
InventoryReadEncyclopediaRequestData info,
string sessionID
MongoId sessionID
)
{
return _inventoryController.ReadEncyclopedia(pmcData, info, sessionID);
return inventoryController.ReadEncyclopedia(pmcData, info, sessionID);
}
/// <summary>
@@ -248,11 +249,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse SortInventory(
PmcData pmcData,
InventorySortRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.SortInventory(pmcData, info, sessionID, output);
inventoryController.SortInventory(pmcData, info, sessionID, output);
return output;
}
@@ -266,11 +267,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse CreateMapMarker(
PmcData pmcData,
InventoryCreateMarkerRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.CreateMapMarker(pmcData, info, sessionID, output);
inventoryController.CreateMapMarker(pmcData, info, sessionID, output);
return output;
}
@@ -284,11 +285,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse DeleteMapMarker(
PmcData pmcData,
InventoryDeleteMarkerRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.DeleteMapMarker(pmcData, info, sessionID, output);
inventoryController.DeleteMapMarker(pmcData, info, sessionID, output);
return output;
}
@@ -302,11 +303,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse EditMapMarker(
PmcData pmcData,
InventoryEditMarkerRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.EditMapMarker(pmcData, info, sessionID, output);
inventoryController.EditMapMarker(pmcData, info, sessionID, output);
return output;
}
@@ -321,11 +322,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse OpenRandomLootContainer(
PmcData pmcData,
OpenRandomLootContainerRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.OpenRandomLootContainer(pmcData, info, sessionID, output);
inventoryController.OpenRandomLootContainer(pmcData, info, sessionID, output);
return output;
}
@@ -339,11 +340,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse RedeemProfileReward(
PmcData pmcData,
RedeemProfileRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.RedeemProfileReward(pmcData, info, sessionID);
inventoryController.RedeemProfileReward(pmcData, info, sessionID);
return output;
}
@@ -358,11 +359,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse SetFavoriteItem(
PmcData pmcData,
SetFavoriteItems info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.SetFavoriteItem(pmcData, info, sessionID);
inventoryController.SetFavoriteItem(pmcData, info, sessionID);
return output;
}
@@ -378,11 +379,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse FailQuest(
PmcData pmcData,
FailQuestRequestData info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_questController.FailQuest(pmcData, info, sessionID, output);
questController.FailQuest(pmcData, info, sessionID, output);
return output;
}
@@ -396,11 +397,11 @@ public class InventoryCallbacks(
public ItemEventRouterResponse PinOrLock(
PmcData pmcData,
PinOrLockItemRequest info,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
_inventoryController.PinOrLock(pmcData, info, sessionID, output);
inventoryController.PinOrLock(pmcData, info, sessionID, output);
return output;
}
}
@@ -1,4 +1,5 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
using SPTarkov.Server.Core.Models.Enums;
using SPTarkov.Server.Core.Routers;
@@ -7,25 +8,22 @@ using SPTarkov.Server.Core.Utils;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class ItemEventCallbacks(
HttpResponseUtil _httpResponseUtil,
ItemEventRouter _itemEventRouter
)
public class ItemEventCallbacks(HttpResponseUtil httpResponseUtil, ItemEventRouter itemEventRouter)
{
public async ValueTask<string> HandleEvents(
string url,
ItemEventRouterRequest info,
string sessionID
MongoId sessionID
)
{
var eventResponse = await _itemEventRouter.HandleEvents(info, sessionID);
var eventResponse = await itemEventRouter.HandleEvents(info, sessionID);
var result = IsCriticalError(eventResponse.Warnings)
? _httpResponseUtil.GetBody(
? httpResponseUtil.GetBody(
eventResponse,
GetErrorCode(eventResponse.Warnings),
eventResponse.Warnings[0].ErrorMessage
)
: _httpResponseUtil.GetBody(eventResponse);
: httpResponseUtil.GetBody(eventResponse);
return result;
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Launcher;
using SPTarkov.Server.Core.Servers;
@@ -9,92 +10,90 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class LauncherCallbacks(
HttpResponseUtil _httpResponseUtil,
LauncherController _launcherController,
SaveServer _saveServer,
Watermark _watermark
HttpResponseUtil httpResponseUtil,
LauncherController launcherController,
SaveServer saveServer,
Watermark watermark
)
{
public ValueTask<string> Connect()
{
return new ValueTask<string>(_httpResponseUtil.NoBody(_launcherController.Connect()));
return new ValueTask<string>(httpResponseUtil.NoBody(launcherController.Connect()));
}
public ValueTask<string> Login(string url, LoginRequestData info, string sessionID)
public ValueTask<string> Login(string url, LoginRequestData info, MongoId sessionID)
{
var output = _launcherController.Login(info);
var output = launcherController.Login(info);
return new ValueTask<string>(output ?? "FAILED");
}
public async ValueTask<string> Register(string url, RegisterData info, string sessionID)
public async ValueTask<string> Register(string url, RegisterData info, MongoId sessionID)
{
var output = await _launcherController.Register(info);
var output = await launcherController.Register(info);
return string.IsNullOrEmpty(output) ? "FAILED" : "OK";
}
public ValueTask<string> Get(string url, LoginRequestData info, string sessionID)
public ValueTask<string> Get(string url, LoginRequestData info, MongoId sessionID)
{
var output = _launcherController.Find(_launcherController.Login(info));
return new ValueTask<string>(_httpResponseUtil.NoBody(output));
var output = launcherController.Find(launcherController.Login(info));
return new ValueTask<string>(httpResponseUtil.NoBody(output));
}
public ValueTask<string> ChangeUsername(string url, ChangeRequestData info, string sessionID)
public ValueTask<string> ChangeUsername(string url, ChangeRequestData info, MongoId sessionID)
{
var output = _launcherController.ChangeUsername(info);
var output = launcherController.ChangeUsername(info);
return new ValueTask<string>(string.IsNullOrEmpty(output) ? "FAILED" : "OK");
}
public ValueTask<string> ChangePassword(string url, ChangeRequestData info, string sessionID)
public ValueTask<string> ChangePassword(string url, ChangeRequestData info, MongoId sessionID)
{
var output = _launcherController.ChangePassword(info);
var output = launcherController.ChangePassword(info);
return new ValueTask<string>(string.IsNullOrEmpty(output) ? "FAILED" : "OK");
}
public ValueTask<string> Wipe(string url, RegisterData info, string sessionID)
public ValueTask<string> Wipe(string url, RegisterData info, MongoId sessionID)
{
var output = _launcherController.Wipe(info);
var output = launcherController.Wipe(info);
return new ValueTask<string>(string.IsNullOrEmpty(output) ? "FAILED" : "OK");
}
public ValueTask<string> GetServerVersion()
{
return new ValueTask<string>(_httpResponseUtil.NoBody(_watermark.GetVersionTag()));
return new ValueTask<string>(httpResponseUtil.NoBody(watermark.GetVersionTag()));
}
public ValueTask<string> Ping(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> Ping(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.NoBody("pong!"));
return new ValueTask<string>(httpResponseUtil.NoBody("pong!"));
}
public ValueTask<string> RemoveProfile(string url, RemoveProfileData info, string sessionID)
public ValueTask<string> RemoveProfile(string url, RemoveProfileData info, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(_saveServer.RemoveProfile(sessionID))
);
return new ValueTask<string>(httpResponseUtil.NoBody(saveServer.RemoveProfile(sessionID)));
}
public ValueTask<string> GetCompatibleTarkovVersion()
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(_launcherController.GetCompatibleTarkovVersion())
httpResponseUtil.NoBody(launcherController.GetCompatibleTarkovVersion())
);
}
public ValueTask<string> GetLoadedServerMods()
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(_launcherController.GetLoadedServerMods())
httpResponseUtil.NoBody(launcherController.GetLoadedServerMods())
);
}
public ValueTask<string> GetServerModsProfileUsed(
string url,
EmptyRequestData _,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(_launcherController.GetServerModsProfileUsed(sessionID))
httpResponseUtil.NoBody(launcherController.GetServerModsProfileUsed(sessionID))
);
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Launcher;
using SPTarkov.Server.Core.Models.Spt.Launcher;
using SPTarkov.Server.Core.Utils;
@@ -8,16 +9,16 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class LauncherV2Callbacks(
HttpResponseUtil _httpResponseUtil,
LauncherV2Controller _launcherV2Controller,
ProfileController _profileController
HttpResponseUtil httpResponseUtil,
LauncherV2Controller launcherV2Controller,
ProfileController profileController
)
{
public ValueTask<string> Ping()
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(
new LauncherV2PingResponse { Response = _launcherV2Controller.Ping() }
httpResponseUtil.NoBody(
new LauncherV2PingResponse { Response = launcherV2Controller.Ping() }
)
);
}
@@ -25,8 +26,8 @@ public class LauncherV2Callbacks(
public ValueTask<string> Types()
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(
new LauncherV2TypesResponse { Response = _launcherV2Controller.Types() }
httpResponseUtil.NoBody(
new LauncherV2TypesResponse { Response = launcherV2Controller.Types() }
)
);
}
@@ -34,30 +35,30 @@ public class LauncherV2Callbacks(
public ValueTask<string> Login(LoginRequestData info)
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(
new LauncherV2LoginResponse { Response = _launcherV2Controller.Login(info) }
httpResponseUtil.NoBody(
new LauncherV2LoginResponse { Response = launcherV2Controller.Login(info) }
)
);
}
public async ValueTask<string> Register(RegisterData info)
{
return _httpResponseUtil.NoBody(
return httpResponseUtil.NoBody(
new LauncherV2RegisterResponse
{
Response = await _launcherV2Controller.Register(info),
Profiles = _profileController.GetMiniProfiles(),
Response = await launcherV2Controller.Register(info),
Profiles = profileController.GetMiniProfiles(),
}
);
}
public async ValueTask<string> PasswordChange(ChangeRequestData info)
{
return _httpResponseUtil.NoBody(
return httpResponseUtil.NoBody(
new LauncherV2PasswordChangeResponse
{
Response = await _launcherV2Controller.PasswordChange(info),
Profiles = _profileController.GetMiniProfiles(),
Response = await launcherV2Controller.PasswordChange(info),
Profiles = profileController.GetMiniProfiles(),
}
);
}
@@ -65,11 +66,11 @@ public class LauncherV2Callbacks(
public ValueTask<string> Remove(LoginRequestData info)
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(
httpResponseUtil.NoBody(
new LauncherV2RemoveResponse
{
Response = _launcherV2Controller.Remove(info),
Profiles = _profileController.GetMiniProfiles(),
Response = launcherV2Controller.Remove(info),
Profiles = profileController.GetMiniProfiles(),
}
)
);
@@ -78,13 +79,13 @@ public class LauncherV2Callbacks(
public ValueTask<string> CompatibleVersion()
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(
httpResponseUtil.NoBody(
new LauncherV2VersionResponse
{
Response = new LauncherV2CompatibleVersion
{
SptVersion = _launcherV2Controller.SptVersion(),
EftVersion = _launcherV2Controller.EftVersion(),
SptVersion = launcherV2Controller.SptVersion(),
EftVersion = launcherV2Controller.EftVersion(),
},
}
)
@@ -94,8 +95,8 @@ public class LauncherV2Callbacks(
public ValueTask<string> Mods()
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(
new LauncherV2ModsResponse { Response = _launcherV2Controller.LoadedMods() }
httpResponseUtil.NoBody(
new LauncherV2ModsResponse { Response = launcherV2Controller.LoadedMods() }
)
);
}
@@ -103,19 +104,19 @@ public class LauncherV2Callbacks(
public ValueTask<string> Profiles()
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(
new LauncherV2ProfilesResponse { Response = _profileController.GetMiniProfiles() }
httpResponseUtil.NoBody(
new LauncherV2ProfilesResponse { Response = profileController.GetMiniProfiles() }
)
);
}
public ValueTask<string> Profile(string? sessionId)
public ValueTask<string> Profile(MongoId? sessionId)
{
return new ValueTask<string>(
_httpResponseUtil.NoBody(
httpResponseUtil.NoBody(
new LauncherV2ProfileResponse
{
Response = _launcherV2Controller.GetProfile(sessionId),
Response = launcherV2Controller.GetProfile(sessionId),
}
)
);
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Location;
using SPTarkov.Server.Core.Utils;
@@ -8,18 +9,18 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class LocationCallbacks(
HttpResponseUtil _httpResponseUtil,
LocationController _locationController
HttpResponseUtil httpResponseUtil,
LocationController locationController
)
{
/// <summary>
/// Handle client/locations
/// </summary>
/// <returns></returns>
public ValueTask<string> GetLocationData(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetLocationData(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_locationController.GenerateAll(sessionID))
httpResponseUtil.GetBody(locationController.GenerateAll(sessionID))
);
}
@@ -30,11 +31,11 @@ public class LocationCallbacks(
public ValueTask<string> GetAirdropLoot(
string url,
GetAirdropLootRequest info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_locationController.GetAirDropLoot(info))
httpResponseUtil.GetBody(locationController.GetAirDropLoot(info))
);
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Match;
using SPTarkov.Server.Core.Services;
@@ -10,9 +11,9 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class MatchCallbacks(
HttpResponseUtil _httpResponseUtil,
MatchController _matchController,
DatabaseService _databaseService
HttpResponseUtil httpResponseUtil,
MatchController matchController,
DatabaseService databaseService
)
{
/// <summary>
@@ -22,9 +23,9 @@ public class MatchCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> UpdatePing(string url, UpdatePingRequestData info, string sessionID)
public ValueTask<string> UpdatePing(string url, UpdatePingRequestData info, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -34,28 +35,28 @@ public class MatchCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> ExitMatch(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> ExitMatch(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
/// Handle client/match/group/exit_from_menu
/// </summary>
/// <returns></returns>
public ValueTask<string> ExitFromMenu(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> ExitFromMenu(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
/// Handle client/match/group/current
/// </summary>
/// <returns></returns>
public ValueTask<string> GroupCurrent(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GroupCurrent(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(new MatchGroupCurrentResponse { Squad = [] })
httpResponseUtil.GetBody(new MatchGroupCurrentResponse { Squad = [] })
);
}
@@ -63,18 +64,18 @@ public class MatchCallbacks(
/// Handle client/match/group/looking/start
/// </summary>
/// <returns></returns>
public ValueTask<string> StartGroupSearch(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> StartGroupSearch(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
/// Handle client/match/group/looking/stop
/// </summary>
/// <returns></returns>
public ValueTask<string> StopGroupSearch(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> StopGroupSearch(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -84,19 +85,19 @@ public class MatchCallbacks(
public ValueTask<string> SendGroupInvite(
string url,
MatchGroupInviteSendRequest info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.GetBody("2427943f23698ay9f2863735"));
return new ValueTask<string>(httpResponseUtil.GetBody("2427943f23698ay9f2863735"));
}
/// <summary>
/// Handle client/match/group/invite/accept
/// </summary>
/// <returns></returns>
public ValueTask<string> AcceptGroupInvite(string url, RequestIdRequest info, string sessionID)
public ValueTask<string> AcceptGroupInvite(string url, RequestIdRequest info, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(new List<GroupCharacter> { new() }));
return new ValueTask<string>(httpResponseUtil.GetBody(new List<GroupCharacter> { new() }));
}
/// <summary>
@@ -106,9 +107,13 @@ public class MatchCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> DeclineGroupInvite(string url, RequestIdRequest info, string sessionID)
public ValueTask<string> DeclineGroupInvite(
string url,
RequestIdRequest info,
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
@@ -118,9 +123,9 @@ public class MatchCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> CancelGroupInvite(string url, RequestIdRequest info, string sessionID)
public ValueTask<string> CancelGroupInvite(string url, RequestIdRequest info, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
@@ -133,28 +138,28 @@ public class MatchCallbacks(
public ValueTask<string> TransferGroup(
string url,
MatchGroupTransferRequest info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
/// Handle client/match/group/invite/cancel-all
/// </summary>
/// <returns></returns>
public ValueTask<string> CancelAllGroupInvite(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> CancelAllGroupInvite(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
/// Handle client/putMetrics
/// </summary>
/// <returns></returns>
public ValueTask<string> PutMetrics(string url, PutMetricsRequestData info, string sessionID)
public ValueTask<string> PutMetrics(string url, PutMetricsRequestData info, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -167,26 +172,26 @@ public class MatchCallbacks(
string sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
/// Handle client/match/available
/// </summary>
/// <returns></returns>
public ValueTask<string> ServerAvailable(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> ServerAvailable(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(_matchController.GetEnabled()));
return new ValueTask<string>(httpResponseUtil.GetBody(matchController.GetEnabled()));
}
/// <summary>
/// Handle match/group/start_game
/// </summary>
/// <returns></returns>
public ValueTask<string> JoinMatch(string url, MatchGroupJoinRequest request, string sessionID)
public ValueTask<string> JoinMatch(string url, MatchGroupJoinRequest request, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_matchController.JoinMatch(request, sessionID))
httpResponseUtil.GetBody(matchController.JoinMatch(request, sessionID))
);
}
@@ -194,11 +199,9 @@ public class MatchCallbacks(
/// Handle client/getMetricsConfig
/// </summary>
/// <returns></returns>
public ValueTask<string> GetMetrics(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetMetrics(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_databaseService.GetMatch().Metrics)
);
return new ValueTask<string>(httpResponseUtil.GetBody(databaseService.GetMatch().Metrics));
}
/// <summary>
@@ -209,11 +212,11 @@ public class MatchCallbacks(
public ValueTask<string> GetGroupStatus(
string url,
MatchGroupStatusRequest info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_matchController.GetGroupStatus(info))
httpResponseUtil.GetBody(matchController.GetGroupStatus(info))
);
}
@@ -221,19 +224,19 @@ public class MatchCallbacks(
/// Handle client/match/group/delete
/// </summary>
/// <returns></returns>
public ValueTask<string> DeleteGroup(string url, DeleteGroupRequest info, string sessionID)
public ValueTask<string> DeleteGroup(string url, DeleteGroupRequest info, MongoId sessionID)
{
_matchController.DeleteGroup(info);
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
matchController.DeleteGroup(info);
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
/// Handle client/match/group/leave
/// </summary>
/// <returns></returns>
public ValueTask<string> LeaveGroup(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> LeaveGroup(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
@@ -243,10 +246,10 @@ public class MatchCallbacks(
public ValueTask<string> RemovePlayerFromGroup(
string url,
MatchGroupPlayerRemoveRequest info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
@@ -256,11 +259,11 @@ public class MatchCallbacks(
public ValueTask<string> StartLocalRaid(
string url,
StartLocalRaidRequestData info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_matchController.StartLocalRaid(sessionID, info))
httpResponseUtil.GetBody(matchController.StartLocalRaid(sessionID, info))
);
}
@@ -271,11 +274,11 @@ public class MatchCallbacks(
public ValueTask<string> EndLocalRaid(
string url,
EndLocalRaidRequestData info,
string sessionID
MongoId sessionID
)
{
_matchController.EndLocalRaid(sessionID, info);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
matchController.EndLocalRaid(sessionID, info);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -285,11 +288,11 @@ public class MatchCallbacks(
public ValueTask<string> GetRaidConfiguration(
string url,
GetRaidConfigurationRequestData info,
string sessionID
MongoId sessionID
)
{
_matchController.ConfigureOfflineRaid(info, sessionID);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
matchController.ConfigureOfflineRaid(info, sessionID);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -302,19 +305,19 @@ public class MatchCallbacks(
public ValueTask<string> GetConfigurationByProfile(
string url,
GetRaidConfigurationRequestData info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
/// Handle client/match/group/raid/ready
/// </summary>
/// <returns></returns>
public ValueTask<string> RaidReady(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> RaidReady(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
@@ -324,9 +327,9 @@ public class MatchCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> NotRaidReady(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> NotRaidReady(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(true));
return new ValueTask<string>(httpResponseUtil.GetBody(true));
}
/// <summary>
@@ -335,7 +338,7 @@ public class MatchCallbacks(
public Task<string> StartGameAsGroupLeader(
string url,
MatchGroupStartGameRequest? request,
string? sessionId
MongoId? sessionId
)
{
// returns a ProfileStatusResponse object
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
using SPTarkov.Server.Core.Models.Eft.Notes;
@@ -7,7 +8,7 @@ using SPTarkov.Server.Core.Models.Eft.Notes;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class NoteCallbacks(NoteController _noteController)
public class NoteCallbacks(NoteController noteController)
{
/// <summary>
/// Handle AddNote event
@@ -19,10 +20,10 @@ public class NoteCallbacks(NoteController _noteController)
public ItemEventRouterResponse AddNote(
PmcData pmcData,
NoteActionRequest request,
string sessionID
MongoId sessionID
)
{
return _noteController.AddNote(pmcData, request, sessionID);
return noteController.AddNote(pmcData, request, sessionID);
}
/// <summary>
@@ -35,10 +36,10 @@ public class NoteCallbacks(NoteController _noteController)
public ItemEventRouterResponse EditNote(
PmcData pmcData,
NoteActionRequest request,
string sessionID
MongoId sessionID
)
{
return _noteController.EditNote(pmcData, request, sessionID);
return noteController.EditNote(pmcData, request, sessionID);
}
/// <summary>
@@ -51,9 +52,9 @@ public class NoteCallbacks(NoteController _noteController)
public ItemEventRouterResponse DeleteNote(
PmcData pmcData,
NoteActionRequest request,
string sessionID
MongoId sessionID
)
{
return _noteController.DeleteNote(pmcData, request, sessionID);
return noteController.DeleteNote(pmcData, request, sessionID);
}
}
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Helpers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.Notifier;
@@ -11,8 +12,8 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class NotifierCallbacks(
HttpResponseUtil _httpResponseUtil,
NotifierController _notifierController,
HttpResponseUtil httpResponseUtil,
NotifierController notifierController,
JsonUtil jsonUtil,
HttpServerHelper httpServerHelper
)
@@ -23,7 +24,7 @@ public class NotifierCallbacks(
/// until we actually have something to send because otherwise we'd spam the client
/// and the client would abort the connection due to spam.
/// </summary>
public void SendNotification(string sessionID, HttpRequest req, HttpResponse resp, object data)
public void SendNotification(MongoId sessionID, HttpRequest req, HttpResponse resp, object data)
{
var splittedUrl = req.Path.Value.Split("/");
var tmpSessionID = splittedUrl[^1].Split("?last_id")[0];
@@ -32,7 +33,7 @@ public class NotifierCallbacks(
* Take our array of JSON message objects and cast them to JSON strings, so that they can then
* be sent to client as NEWLINE separated strings... yup.
*/
_notifierController
notifierController
.NotifyAsync(tmpSessionID)
.ContinueWith(messages =>
messages.Result.Select(message => string.Join("\n", jsonUtil.Serialize(message)))
@@ -46,19 +47,23 @@ public class NotifierCallbacks(
/// Handle push/notifier/getwebsocket
/// </summary>
/// <returns></returns>
public ValueTask<string> GetNotifier(string url, IRequestData info, string sessionID)
public ValueTask<string> GetNotifier(string url, IRequestData info, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.EmptyArrayResponse());
return new ValueTask<string>(httpResponseUtil.EmptyArrayResponse());
}
/// <summary>
/// Handle client/notifier/channel/create
/// </summary>
/// <returns></returns>
public ValueTask<string> CreateNotifierChannel(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> CreateNotifierChannel(
string url,
EmptyRequestData _,
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_notifierController.GetChannel(sessionID))
httpResponseUtil.GetBody(notifierController.GetChannel(sessionID))
);
}
@@ -66,17 +71,17 @@ public class NotifierCallbacks(
/// Handle client/game/profile/select
/// </summary>
/// <returns></returns>
public ValueTask<string> SelectProfile(string url, UIDRequestData info, string sessionID)
public ValueTask<string> SelectProfile(string url, UIDRequestData info, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(new SelectProfileResponse { Status = "ok" })
httpResponseUtil.GetBody(new SelectProfileResponse { Status = "ok" })
);
}
/// <summary>
/// </summary>
/// <returns></returns>
public ValueTask<string> Notify(string url, object info, string sessionID)
public ValueTask<string> Notify(string url, object info, MongoId sessionID)
{
return new ValueTask<string>("NOTIFY");
}
@@ -5,11 +5,11 @@ using SPTarkov.Server.Core.DI;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable(TypePriority = OnLoadOrder.PresetCallbacks)]
public class PresetCallbacks(PresetController _presetController) : IOnLoad
public class PresetCallbacks(PresetController presetController) : IOnLoad
{
public Task OnLoad()
{
_presetController.Initialize();
presetController.Initialize();
return Task.CompletedTask;
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Prestige;
using SPTarkov.Server.Core.Utils;
@@ -8,8 +9,8 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class PrestigeCallbacks(
HttpResponseUtil _httpResponseUtil,
PrestigeController _prestigeController
HttpResponseUtil httpResponseUtil,
PrestigeController prestigeController
)
{
/// <summary>
@@ -19,10 +20,10 @@ public class PrestigeCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> GetPrestige(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetPrestige(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_prestigeController.GetPrestige(sessionID))
httpResponseUtil.GetBody(prestigeController.GetPrestige(sessionID))
);
}
@@ -36,11 +37,11 @@ public class PrestigeCallbacks(
public async ValueTask<string> ObtainPrestige(
string url,
ObtainPrestigeRequestList info,
string sessionID
MongoId sessionID
)
{
await _prestigeController.ObtainPrestige(sessionID, info);
await prestigeController.ObtainPrestige(sessionID, info);
return _httpResponseUtil.NullResponse();
return httpResponseUtil.NullResponse();
}
}
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Helpers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Launcher;
using SPTarkov.Server.Core.Models.Eft.Profile;
@@ -12,10 +13,10 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class ProfileCallbacks(
HttpResponseUtil _httpResponse,
TimeUtil _timeUtil,
ProfileController _profileController,
ProfileHelper _profileHelper
HttpResponseUtil httpResponse,
TimeUtil timeUtil,
ProfileController profileController,
ProfileHelper profileHelper
)
{
/// <summary>
@@ -25,11 +26,11 @@ public class ProfileCallbacks(
public async ValueTask<string> CreateProfile(
string url,
ProfileCreateRequestData info,
string sessionID
MongoId sessionID
)
{
var id = await _profileController.CreateProfile(info, sessionID);
return _httpResponse.GetBody(new CreateProfileResponse { UserId = id });
var id = await profileController.CreateProfile(info, sessionID);
return httpResponse.GetBody(new CreateProfileResponse { UserId = id });
}
/// <summary>
@@ -37,10 +38,10 @@ public class ProfileCallbacks(
/// Get the complete player profile (scav + pmc character)
/// </summary>
/// <returns></returns>
public ValueTask<string> GetProfileData(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetProfileData(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponse.GetBody(_profileController.GetCompleteProfile(sessionID))
httpResponse.GetBody(profileController.GetCompleteProfile(sessionID))
);
}
@@ -50,11 +51,11 @@ public class ProfileCallbacks(
/// Occurs post-raid and when profile first created immediately after character details are confirmed by player
/// </summary>
/// <returns></returns>
public ValueTask<string> RegenerateScav(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> RegenerateScav(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponse.GetBody(
new List<PmcData> { _profileController.GeneratePlayerScav(sessionID) }
httpResponse.GetBody(
new List<PmcData> { profileController.GeneratePlayerScav(sessionID) }
)
);
}
@@ -66,11 +67,11 @@ public class ProfileCallbacks(
public ValueTask<string> ChangeVoice(
string url,
ProfileChangeVoiceRequestData info,
string sessionID
MongoId sessionID
)
{
_profileController.ChangeVoice(info, sessionID);
return new ValueTask<string>(_httpResponse.NullResponse());
profileController.ChangeVoice(info, sessionID);
return new ValueTask<string>(httpResponse.NullResponse());
}
/// <summary>
@@ -81,30 +82,30 @@ public class ProfileCallbacks(
public ValueTask<string> ChangeNickname(
string url,
ProfileChangeNicknameRequestData info,
string sessionId
MongoId sessionId
)
{
var output = _profileController.ChangeNickname(info, sessionId);
var output = profileController.ChangeNickname(info, sessionId);
return output switch
{
NicknameValidationResult.Taken => new ValueTask<string>(
_httpResponse.GetBody<object?>(
httpResponse.GetBody<object?>(
null,
BackendErrorCodes.NicknameNotUnique,
$"{BackendErrorCodes.NicknameNotUnique} - "
)
),
NicknameValidationResult.Short => new ValueTask<string>(
_httpResponse.GetBody<object?>(
httpResponse.GetBody<object?>(
null,
BackendErrorCodes.NicknameNotValid,
$"{BackendErrorCodes.NicknameNotValid} - "
)
),
_ => new ValueTask<string>(
_httpResponse.GetBody<object>(
new { status = 0, NicknameChangeDate = _timeUtil.GetTimeStamp() }
httpResponse.GetBody<object>(
new { status = 0, NicknameChangeDate = timeUtil.GetTimeStamp() }
)
),
};
@@ -117,26 +118,26 @@ public class ProfileCallbacks(
public ValueTask<string> ValidateNickname(
string url,
ValidateNicknameRequestData info,
string sessionId
MongoId sessionId
)
{
return _profileController.ValidateNickname(info, sessionId) switch
return profileController.ValidateNickname(info, sessionId) switch
{
NicknameValidationResult.Taken => new ValueTask<string>(
_httpResponse.GetBody<object?>(
httpResponse.GetBody<object?>(
null,
BackendErrorCodes.NicknameNotUnique,
$"{BackendErrorCodes.NicknameNotUnique} - "
)
),
NicknameValidationResult.Short => new ValueTask<string>(
_httpResponse.GetBody<object?>(
httpResponse.GetBody<object?>(
null,
BackendErrorCodes.NicknameNotValid,
$"{BackendErrorCodes.NicknameNotValid} - "
)
),
_ => new ValueTask<string>(_httpResponse.GetBody(new { status = "ok" })),
_ => new ValueTask<string>(httpResponse.GetBody(new { status = "ok" })),
};
}
@@ -144,16 +145,16 @@ public class ProfileCallbacks(
/// Handle client/game/profile/nickname/reserved
/// </summary>
/// <returns></returns>
public ValueTask<string> GetReservedNickname(string url, EmptyRequestData _, string sessionId)
public ValueTask<string> GetReservedNickname(string url, EmptyRequestData _, MongoId sessionId)
{
var fullProfile = _profileHelper.GetFullProfile(sessionId);
var fullProfile = profileHelper.GetFullProfile(sessionId);
if (fullProfile?.ProfileInfo?.Username is not null)
{
// Send players name back to them
return new ValueTask<string>(_httpResponse.GetBody(fullProfile?.ProfileInfo?.Username));
return new ValueTask<string>(httpResponse.GetBody(fullProfile?.ProfileInfo?.Username));
}
return new ValueTask<string>(_httpResponse.GetBody("SPTarkov"));
return new ValueTask<string>(httpResponse.GetBody("SPTarkov"));
}
/// <summary>
@@ -161,10 +162,10 @@ public class ProfileCallbacks(
/// Called when creating a character when choosing a character face/voice
/// </summary>
/// <returns></returns>
public ValueTask<string> GetProfileStatus(string url, EmptyRequestData _, string sessionId)
public ValueTask<string> GetProfileStatus(string url, EmptyRequestData _, MongoId sessionId)
{
return new ValueTask<string>(
_httpResponse.GetBody(_profileController.GetProfileStatus(sessionId))
httpResponse.GetBody(profileController.GetProfileStatus(sessionId))
);
}
@@ -176,11 +177,11 @@ public class ProfileCallbacks(
public ValueTask<string> GetOtherProfile(
string url,
GetOtherProfileRequest request,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponse.GetBody(_profileController.GetOtherProfile(sessionID, request))
httpResponse.GetBody(profileController.GetOtherProfile(sessionID, request))
);
}
@@ -191,11 +192,11 @@ public class ProfileCallbacks(
public ValueTask<string> GetProfileSettings(
string url,
GetProfileSettingsRequest info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponse.GetBody(_profileController.SetChosenProfileIcon(sessionID, info))
httpResponse.GetBody(profileController.SetChosenProfileIcon(sessionID, info))
);
}
@@ -206,11 +207,11 @@ public class ProfileCallbacks(
public ValueTask<string> SearchProfiles(
string url,
SearchProfilesRequestData info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponse.GetBody(_profileController.SearchProfiles(info, sessionID))
httpResponse.GetBody(profileController.SearchProfiles(info, sessionID))
);
}
@@ -221,11 +222,11 @@ public class ProfileCallbacks(
public ValueTask<string> GetMiniProfile(
string url,
GetMiniProfileRequestData info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponse.NoBody(_profileController.GetMiniProfile(sessionID))
httpResponse.NoBody(profileController.GetMiniProfile(sessionID))
);
}
@@ -233,8 +234,8 @@ public class ProfileCallbacks(
/// Handle /launcher/profiles
/// </summary>
/// <returns></returns>
public ValueTask<string> GetAllMiniProfiles(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetAllMiniProfiles(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponse.NoBody(_profileController.GetMiniProfiles()));
return new ValueTask<string>(httpResponse.NoBody(profileController.GetMiniProfiles()));
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
using SPTarkov.Server.Core.Models.Eft.Quests;
@@ -9,9 +10,9 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class QuestCallbacks(
HttpResponseUtil _httpResponseUtil,
QuestController _questController,
RepeatableQuestController _repeatableQuestController
HttpResponseUtil httpResponseUtil,
QuestController questController,
RepeatableQuestController repeatableQuestController
)
{
/// <summary>
@@ -24,10 +25,10 @@ public class QuestCallbacks(
public ItemEventRouterResponse ChangeRepeatableQuest(
PmcData pmcData,
RepeatableQuestChangeRequest info,
string sessionID
MongoId sessionID
)
{
return _repeatableQuestController.ChangeRepeatableQuest(pmcData, info, sessionID);
return repeatableQuestController.ChangeRepeatableQuest(pmcData, info, sessionID);
}
/// <summary>
@@ -40,15 +41,15 @@ public class QuestCallbacks(
public ItemEventRouterResponse AcceptQuest(
PmcData pmcData,
AcceptQuestRequestData info,
string sessionID
MongoId sessionID
)
{
if (info.Type == "repeatable")
{
return _repeatableQuestController.AcceptRepeatableQuest(pmcData, info, sessionID);
return repeatableQuestController.AcceptRepeatableQuest(pmcData, info, sessionID);
}
return _questController.AcceptQuest(pmcData, info, sessionID);
return questController.AcceptQuest(pmcData, info, sessionID);
}
/// <summary>
@@ -61,10 +62,10 @@ public class QuestCallbacks(
public ItemEventRouterResponse CompleteQuest(
PmcData pmcData,
CompleteQuestRequestData info,
string sessionID
MongoId sessionID
)
{
return _questController.CompleteQuest(pmcData, info, sessionID);
return questController.CompleteQuest(pmcData, info, sessionID);
}
/// <summary>
@@ -77,10 +78,10 @@ public class QuestCallbacks(
public ItemEventRouterResponse HandoverQuest(
PmcData pmcData,
HandoverQuestRequestData info,
string sessionID
MongoId sessionID
)
{
return _questController.HandoverQuest(pmcData, info, sessionID);
return questController.HandoverQuest(pmcData, info, sessionID);
}
/// <summary>
@@ -90,10 +91,10 @@ public class QuestCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> ListQuests(string url, ListQuestsRequestData info, string sessionID)
public ValueTask<string> ListQuests(string url, ListQuestsRequestData info, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_questController.GetClientQuests(sessionID))
httpResponseUtil.GetBody(questController.GetClientQuests(sessionID))
);
}
@@ -104,12 +105,10 @@ public class QuestCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> ActivityPeriods(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> ActivityPeriods(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(
_repeatableQuestController.GetClientRepeatableQuests(sessionID)
)
httpResponseUtil.GetBody(repeatableQuestController.GetClientRepeatableQuests(sessionID))
);
}
}
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
using SPTarkov.Server.Core.Models.Eft.Ragfair;
@@ -13,20 +14,20 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable(TypePriority = OnLoadOrder.RagfairCallbacks)]
public class RagfairCallbacks(
HttpResponseUtil _httpResponseUtil,
RagfairServer _ragfairServer,
RagfairController _ragfairController,
RagfairTaxService _ragfairTaxService,
RagfairPriceService _ragfairPriceService,
ConfigServer _configServer
HttpResponseUtil httpResponseUtil,
RagfairServer ragfairServer,
RagfairController ragfairController,
RagfairTaxService ragfairTaxService,
RagfairPriceService ragfairPriceService,
ConfigServer configServer
) : IOnLoad, IOnUpdate
{
private readonly RagfairConfig _ragfairConfig = _configServer.GetConfig<RagfairConfig>();
private readonly RagfairConfig _ragfairConfig = configServer.GetConfig<RagfairConfig>();
public Task OnLoad()
{
_ragfairServer.Load();
_ragfairPriceService.Load();
ragfairServer.Load();
ragfairPriceService.Load();
return Task.CompletedTask;
}
@@ -40,13 +41,13 @@ public class RagfairCallbacks(
}
// There is a flag inside this class that only makes it run once.
_ragfairServer.AddPlayerOffers();
ragfairServer.AddPlayerOffers();
// Check player offers and mail payment to player if sold
_ragfairController.Update();
ragfairController.Update();
// Process all offers / expire offers
_ragfairServer.Update();
ragfairServer.Update();
return Task.FromResult(true);
}
@@ -59,10 +60,10 @@ public class RagfairCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> Search(string url, SearchRequestData info, string sessionID)
public ValueTask<string> Search(string url, SearchRequestData info, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_ragfairController.GetOffers(sessionID, info))
httpResponseUtil.GetBody(ragfairController.GetOffers(sessionID, info))
);
}
@@ -76,11 +77,11 @@ public class RagfairCallbacks(
public ValueTask<string> GetMarketPrice(
string url,
GetMarketPriceRequestData info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_ragfairController.GetItemMinAvgMaxFleaPriceValues(info))
httpResponseUtil.GetBody(ragfairController.GetItemMinAvgMaxFleaPriceValues(info))
);
}
@@ -94,10 +95,10 @@ public class RagfairCallbacks(
public ItemEventRouterResponse AddOffer(
PmcData pmcData,
AddOfferRequestData info,
string sessionID
MongoId sessionID
)
{
return _ragfairController.AddPlayerOffer(pmcData, info, sessionID);
return ragfairController.AddPlayerOffer(pmcData, info, sessionID);
}
/// <summary>
@@ -110,10 +111,10 @@ public class RagfairCallbacks(
public ItemEventRouterResponse RemoveOffer(
PmcData pmcData,
RemoveOfferRequestData info,
string sessionID
MongoId sessionID
)
{
return _ragfairController.FlagOfferForRemoval(info.OfferId, sessionID);
return ragfairController.FlagOfferForRemoval(info.OfferId, sessionID);
}
/// <summary>
@@ -126,10 +127,10 @@ public class RagfairCallbacks(
public ItemEventRouterResponse ExtendOffer(
PmcData pmcData,
ExtendOfferRequestData info,
string sessionID
MongoId sessionID
)
{
return _ragfairController.ExtendOffer(info, sessionID);
return ragfairController.ExtendOffer(info, sessionID);
}
/// <summary>
@@ -140,10 +141,10 @@ public class RagfairCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> GetFleaPrices(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetFleaPrices(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_ragfairController.GetAllFleaPrices())
httpResponseUtil.GetBody(ragfairController.GetAllFleaPrices())
);
}
@@ -157,20 +158,20 @@ public class RagfairCallbacks(
public ValueTask<string> SendReport(
string url,
SendRagfairReportRequestData info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(_httpResponseUtil.NullResponse());
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
public ValueTask<string> StorePlayerOfferTaxAmount(
string url,
StorePlayerOfferTaxAmountRequestData info,
string sessionID
MongoId sessionID
)
{
_ragfairTaxService.StoreClientOfferTaxValue(sessionID, info);
return new ValueTask<string>(_httpResponseUtil.NullResponse());
ragfairTaxService.StoreClientOfferTaxValue(sessionID, info);
return new ValueTask<string>(httpResponseUtil.NullResponse());
}
/// <summary>
@@ -183,11 +184,11 @@ public class RagfairCallbacks(
public ValueTask<string> GetFleaOfferById(
string url,
GetRagfairOfferByIdRequest info,
string sessionID
MongoId sessionID
)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_ragfairController.GetOfferByInternalId(sessionID, info))
httpResponseUtil.GetBody(ragfairController.GetOfferByInternalId(sessionID, info))
);
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
using SPTarkov.Server.Core.Models.Eft.Repair;
@@ -20,7 +21,7 @@ public class RepairCallbacks(RepairController _repairController)
public ItemEventRouterResponse TraderRepair(
PmcData pmcData,
TraderRepairActionDataRequest info,
string sessionID
MongoId sessionID
)
{
return _repairController.TraderRepair(sessionID, info, pmcData);
@@ -37,7 +38,7 @@ public class RepairCallbacks(RepairController _repairController)
public ItemEventRouterResponse Repair(
PmcData pmcData,
RepairActionDataRequest info,
string sessionID
MongoId sessionID
)
{
return _repairController.RepairWithKit(sessionID, info, pmcData);
@@ -8,17 +8,17 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable(TypePriority = OnLoadOrder.SaveCallbacks)]
public class SaveCallbacks(
SaveServer _saveServer,
ConfigServer _configServer,
BackupService _backupService
SaveServer saveServer,
ConfigServer configServer,
BackupService backupService
) : IOnLoad, IOnUpdate
{
private readonly CoreConfig _coreConfig = _configServer.GetConfig<CoreConfig>();
private readonly CoreConfig _coreConfig = configServer.GetConfig<CoreConfig>();
public async Task OnLoad()
{
await _backupService.StartBackupSystem();
await _saveServer.LoadAsync();
await backupService.StartBackupSystem();
await saveServer.LoadAsync();
}
public async Task<bool> OnUpdate(long secondsSinceLastRun)
@@ -29,7 +29,7 @@ public class SaveCallbacks(
return false;
}
await _saveServer.SaveAsync();
await saveServer.SaveAsync();
return true;
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
using SPTarkov.Server.Core.Models.Eft.Trade;
@@ -7,7 +8,7 @@ using SPTarkov.Server.Core.Models.Eft.Trade;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class TradeCallbacks(TradeController _tradeController)
public class TradeCallbacks(TradeController tradeController)
{
/// <summary>
/// Handle client/game/profile/items/moving TradingConfirm event
@@ -19,10 +20,10 @@ public class TradeCallbacks(TradeController _tradeController)
public ItemEventRouterResponse ProcessTrade(
PmcData pmcData,
ProcessBaseTradeRequestData info,
string sessionID
MongoId sessionID
)
{
return _tradeController.ConfirmTrading(pmcData, info, sessionID);
return tradeController.ConfirmTrading(pmcData, info, sessionID);
}
/// <summary>
@@ -35,10 +36,10 @@ public class TradeCallbacks(TradeController _tradeController)
public ItemEventRouterResponse ProcessRagfairTrade(
PmcData pmcData,
ProcessRagfairTradeRequestData info,
string sessionID
MongoId sessionID
)
{
return _tradeController.ConfirmRagfairTrading(pmcData, info, sessionID);
return tradeController.ConfirmRagfairTrading(pmcData, info, sessionID);
}
/// <summary>
@@ -51,9 +52,9 @@ public class TradeCallbacks(TradeController _tradeController)
public ItemEventRouterResponse SellAllFromSavage(
PmcData pmcData,
SellScavItemsToFenceRequestData info,
string sessionID
MongoId sessionID
)
{
return _tradeController.SellScavItemsToFence(pmcData, info, sessionID);
return tradeController.SellScavItemsToFence(pmcData, info, sessionID);
}
}
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Spt.Config;
using SPTarkov.Server.Core.Servers;
@@ -10,22 +11,22 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable(TypePriority = OnLoadOrder.TraderCallbacks)]
public class TraderCallbacks(
HttpResponseUtil _httpResponseUtil,
TraderController _traderController,
ConfigServer _configServer
HttpResponseUtil httpResponseUtil,
TraderController traderController,
ConfigServer configServer
) : IOnLoad, IOnUpdate
{
private readonly TraderConfig _traderConfig = _configServer.GetConfig<TraderConfig>();
private readonly TraderConfig _traderConfig = configServer.GetConfig<TraderConfig>();
public Task OnLoad()
{
_traderController.Load();
traderController.Load();
return Task.CompletedTask;
}
public Task<bool> OnUpdate(long _)
{
_traderController.Update();
traderController.Update();
return Task.FromResult(true);
}
@@ -33,21 +34,21 @@ public class TraderCallbacks(
/// <summary>
/// Handle client/trading/api/traderSettings
/// </summary>
public ValueTask<string> GetTraderSettings(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetTraderSettings(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_traderController.GetAllTraders(sessionID))
httpResponseUtil.GetBody(traderController.GetAllTraders(sessionID))
);
}
/// <summary>
/// Handle client/trading/api/getTrader
/// </summary>
public ValueTask<string> GetTrader(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetTrader(string url, EmptyRequestData _, MongoId sessionID)
{
var traderID = url.Replace("/client/trading/api/getTrader/", "");
return new ValueTask<string>(
_httpResponseUtil.GetBody(_traderController.GetTrader(sessionID, traderID))
httpResponseUtil.GetBody(traderController.GetTrader(sessionID, traderID))
);
}
@@ -55,11 +56,11 @@ public class TraderCallbacks(
/// Handle client/trading/api/getTraderAssort
/// </summary>
/// <returns></returns>
public ValueTask<string> GetAssort(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetAssort(string url, EmptyRequestData _, MongoId sessionID)
{
var traderID = url.Replace("/client/trading/api/getTraderAssort/", "");
return new ValueTask<string>(
_httpResponseUtil.GetBody(_traderController.GetAssort(sessionID, traderID))
httpResponseUtil.GetBody(traderController.GetAssort(sessionID, traderID))
);
}
@@ -70,8 +71,8 @@ public class TraderCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> GetModdedTraderData(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetModdedTraderData(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.NoBody(_traderConfig.ModdedTraders));
return new ValueTask<string>(httpResponseUtil.NoBody(_traderConfig.ModdedTraders));
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Utils;
@@ -7,8 +8,8 @@ namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class WeatherCallbacks(
HttpResponseUtil _httpResponseUtil,
WeatherController _weatherController
HttpResponseUtil httpResponseUtil,
WeatherController weatherController
)
{
/// <summary>
@@ -18,9 +19,9 @@ public class WeatherCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> GetWeather(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetWeather(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(_httpResponseUtil.GetBody(_weatherController.Generate()));
return new ValueTask<string>(httpResponseUtil.GetBody(weatherController.Generate()));
}
/// <summary>
@@ -30,10 +31,10 @@ public class WeatherCallbacks(
/// <param name="info"></param>
/// <param name="sessionID">Session/player id</param>
/// <returns></returns>
public ValueTask<string> GetLocalWeather(string url, EmptyRequestData _, string sessionID)
public ValueTask<string> GetLocalWeather(string url, EmptyRequestData _, MongoId sessionID)
{
return new ValueTask<string>(
_httpResponseUtil.GetBody(_weatherController.GenerateLocal(sessionID))
httpResponseUtil.GetBody(weatherController.GenerateLocal(sessionID))
);
}
}
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
using SPTarkov.Server.Core.Models.Eft.Wishlist;
@@ -7,7 +8,7 @@ using SPTarkov.Server.Core.Models.Eft.Wishlist;
namespace SPTarkov.Server.Core.Callbacks;
[Injectable]
public class WishlistCallbacks(WishlistController _wishlistController)
public class WishlistCallbacks(WishlistController wishlistController)
{
/// <summary>
/// Handle AddToWishList event
@@ -19,10 +20,10 @@ public class WishlistCallbacks(WishlistController _wishlistController)
public ItemEventRouterResponse AddToWishlist(
PmcData pmcData,
AddToWishlistRequest info,
string sessionID
MongoId sessionID
)
{
return _wishlistController.AddToWishList(pmcData, info, sessionID);
return wishlistController.AddToWishList(pmcData, info, sessionID);
}
/// <summary>
@@ -35,10 +36,10 @@ public class WishlistCallbacks(WishlistController _wishlistController)
public ItemEventRouterResponse RemoveFromWishlist(
PmcData pmcData,
RemoveFromWishlistRequest info,
string sessionID
MongoId sessionID
)
{
return _wishlistController.RemoveFromWishList(pmcData, info, sessionID);
return wishlistController.RemoveFromWishList(pmcData, info, sessionID);
}
/// <summary>
@@ -51,9 +52,9 @@ public class WishlistCallbacks(WishlistController _wishlistController)
public ItemEventRouterResponse ChangeWishlistItemCategory(
PmcData pmcData,
ChangeWishlistItemCategoryRequest info,
string sessionID
MongoId sessionID
)
{
return _wishlistController.ChangeWishListItemCategory(pmcData, info, sessionID);
return wishlistController.ChangeWishListItemCategory(pmcData, info, sessionID);
}
}
@@ -1,7 +1,9 @@
using SPTarkov.Server.Core.Models.Common;
namespace SPTarkov.Server.Core.DI;
public interface ISerializer
{
public Task Serialize(string sessionID, HttpRequest req, HttpResponse resp, object? body);
public Task Serialize(MongoId sessionID, HttpRequest req, HttpResponse resp, object? body);
public bool CanHandle(string route);
}
+6 -5
View File
@@ -1,3 +1,4 @@
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -53,7 +54,7 @@ public abstract class StaticRouter : Router
public async ValueTask<object> HandleStatic(
string url,
string? body,
string sessionID,
MongoId sessionId,
string output
)
{
@@ -65,7 +66,7 @@ public abstract class StaticRouter : Router
info = (IRequestData?)_jsonUtil.Deserialize(body, type);
}
return await action.action(url, info, sessionID, output);
return await action.action(url, info, sessionId, output);
}
protected override List<HandledRoute> GetHandledRoutes()
@@ -88,7 +89,7 @@ public abstract class DynamicRouter : Router
public async ValueTask<object> HandleDynamic(
string url,
string? body,
string sessionID,
MongoId sessionID,
string output
)
{
@@ -117,7 +118,7 @@ public abstract class ItemEventRouterDefinition : Router
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
);
}
@@ -131,7 +132,7 @@ public record HandledRoute(string route, bool dynamic);
public record RouteAction(
string url,
Func<string, IRequestData?, string?, string?, ValueTask<object>> action,
Func<string, IRequestData?, MongoId, string?, ValueTask<object>> action,
Type? bodyType = null
);
//public action: (url: string, info: any, sessionID: string, output: string) => Promise<any>,
@@ -812,7 +812,7 @@ public class HideoutHelper(
}
var modifiedProductionTime = recipe.ProductionTime - timeReductionSeconds;
if (modifiedProductionTime > 0 && _profileHelper.IsDeveloperAccount(pmcData.Id))
if (modifiedProductionTime > 0 && _profileHelper.IsDeveloperAccount(pmcData.Id.Value))
{
modifiedProductionTime = 40;
}
@@ -62,7 +62,7 @@ public class ProfileHelper(
/// Get all profiles from server
/// </summary>
/// <returns>Dictionary of profiles</returns>
public Dictionary<string, SptProfile> GetProfiles()
public Dictionary<MongoId, SptProfile> GetProfiles()
{
return _saveServer.GetProfiles();
}
@@ -72,7 +72,7 @@ public class ProfileHelper(
/// </summary>
/// <param name="sessionId">Session/Player id</param>
/// <returns>Array of PmcData objects</returns>
public List<PmcData> GetCompleteProfile(string sessionId)
public List<PmcData> GetCompleteProfile(MongoId sessionId)
{
var output = new List<PmcData>();
@@ -113,7 +113,7 @@ public class ProfileHelper(
/// <param name="nicknameRequest">nickname request object</param>
/// <param name="sessionID">Session id</param>
/// <returns>True if already in use</returns>
public bool IsNicknameTaken(ValidateNicknameRequestData nicknameRequest, string sessionID)
public bool IsNicknameTaken(ValidateNicknameRequestData nicknameRequest, MongoId sessionID)
{
var allProfiles = _saveServer.GetProfiles().Values;
@@ -144,7 +144,7 @@ public class ProfileHelper(
/// </summary>
/// <param name="sessionID">Session id</param>
/// <param name="experienceToAdd">Experience to add to PMC character</param>
public void AddExperienceToPmc(string sessionID, int experienceToAdd)
public void AddExperienceToPmc(MongoId sessionID, int experienceToAdd)
{
var pmcData = GetPmcProfile(sessionID);
if (pmcData != null)
@@ -228,7 +228,7 @@ public class ProfileHelper(
/// </summary>
/// <param name="sessionID">Profile id to get</param>
/// <returns>SptProfile object</returns>
public SptProfile? GetFullProfile(string sessionID)
public SptProfile? GetFullProfile(MongoId sessionID)
{
return _saveServer.ProfileExists(sessionID) ? _saveServer.GetProfile(sessionID) : null;
}
@@ -257,7 +257,7 @@ public class ProfileHelper(
/// </summary>
/// <param name="sessionID">The session ID to return the profile for</param>
/// <returns></returns>
public SearchFriendResponse? GetChatRoomMemberFromSessionId(string sessionID)
public SearchFriendResponse? GetChatRoomMemberFromSessionId(MongoId sessionID)
{
var pmcProfile = GetFullProfile(sessionID)?.CharacterData?.PmcData;
if (pmcProfile == null)
@@ -295,7 +295,7 @@ public class ProfileHelper(
/// </summary>
/// <param name="sessionID">Profile id to return</param>
/// <returns>PmcData object</returns>
public PmcData? GetPmcProfile(string sessionID)
public PmcData? GetPmcProfile(MongoId sessionID)
{
return GetFullProfile(sessionID)?.CharacterData?.PmcData;
}
@@ -306,7 +306,7 @@ public class ProfileHelper(
/// <param name="userId">Id to validate</param>
/// <returns>True is a player</returns>
/// UNUSED?
public bool IsPlayer(string userId)
public bool IsPlayer(MongoId userId)
{
return _saveServer.ProfileExists(userId);
}
@@ -316,9 +316,9 @@ public class ProfileHelper(
/// </summary>
/// <param name="sessionID">Profiles id</param>
/// <returns>IPmcData object</returns>
public PmcData? GetScavProfile(string sessionID)
public PmcData? GetScavProfile(MongoId sessionID)
{
return _saveServer.GetProfile(sessionID)?.CharacterData?.ScavData;
return _saveServer.GetProfile(sessionID).CharacterData?.ScavData;
}
/// <summary>
@@ -360,7 +360,7 @@ public class ProfileHelper(
/// <param name="sessionID">Profile id</param>
/// <returns>True if profile is to be wiped of data/progress</returns>
/// TODO: logic doesn't feel right to have IsWiped being nullable
protected bool IsWiped(string sessionID)
protected bool IsWiped(MongoId sessionID)
{
return _saveServer.GetProfile(sessionID)?.ProfileInfo?.IsWiped ?? false;
}
@@ -397,7 +397,7 @@ public class ProfileHelper(
/// <param name="playerId">Player to add gift flag to</param>
/// <param name="giftId">Gift player received</param>
/// <param name="maxCount">Limit of how many of this gift a player can have</param>
public void FlagGiftReceivedInProfile(string playerId, string giftId, int maxCount)
public void FlagGiftReceivedInProfile(MongoId playerId, string giftId, int maxCount)
{
var profileToUpdate = GetFullProfile(playerId);
profileToUpdate.SptData.ReceivedGifts ??= [];
@@ -430,7 +430,7 @@ public class ProfileHelper(
/// <param name="giftId">Gift to check for</param>
/// <param name="maxGiftCount">Max times gift can be given to player</param>
/// <returns>True if player has received gift previously</returns>
public bool PlayerHasReceivedMaxNumberOfGift(string playerId, string giftId, int maxGiftCount)
public bool PlayerHasReceivedMaxNumberOfGift(MongoId playerId, string giftId, int maxGiftCount)
{
var profile = GetFullProfile(playerId);
if (profile == null)
@@ -561,7 +561,7 @@ public class ProfileHelper(
/// </summary>
/// <param name="sessionID">Profile id to check</param>
/// <returns>True if account is developer</returns>
public bool IsDeveloperAccount(string sessionID)
public bool IsDeveloperAccount(MongoId sessionID)
{
return GetFullProfile(sessionID)
?.ProfileInfo?.Edition?.ToLowerInvariant()
@@ -573,7 +573,7 @@ public class ProfileHelper(
/// </summary>
/// <param name="sessionId">Profile id to give rows to</param>
/// <param name="rowsToAdd">How many rows to give profile</param>
public void AddStashRowsBonusToProfile(string sessionId, int rowsToAdd)
public void AddStashRowsBonusToProfile(MongoId sessionId, int rowsToAdd)
{
var profile = GetPmcProfile(sessionId);
if (profile?.Bonuses is null)
@@ -77,7 +77,7 @@ public class RewardHelper(
break;
case RewardType.Experience:
_profileHelper.AddExperienceToPmc(
sessionId,
sessionId.Value,
int.Parse(reward.Value.ToString())
); // this must occur first as the output object needs to take the modified profile exp value
// Recalculate level in event player leveled up
@@ -101,7 +101,7 @@ public class RewardHelper(
AddAchievementToProfile(fullProfile, reward.Target);
break;
case RewardType.StashRows:
_profileHelper.AddStashRowsBonusToProfile(sessionId, (int)reward.Value); // Add specified stash rows from reward - requires client restart
_profileHelper.AddStashRowsBonusToProfile(sessionId.Value, (int)reward.Value); // Add specified stash rows from reward - requires client restart
break;
case RewardType.ProductionScheme:
FindAndAddHideoutProductionIdToProfile(
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Helpers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Tables;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -17,16 +18,16 @@ public class EventOutputHolder(
ICloner cloner
)
{
protected readonly Dictionary<string, Dictionary<string, bool>> _clientActiveSessionStorage =
protected readonly Dictionary<MongoId, Dictionary<string, bool>> _clientActiveSessionStorage =
new();
protected readonly Dictionary<string, ItemEventRouterResponse> _outputStore = new();
protected readonly Dictionary<MongoId, ItemEventRouterResponse> _outputStore = new();
/// <summary>
/// Get a fresh/empty response to send to the client
/// </summary>
/// <param name="sessionId">Player id</param>
/// <returns>ItemEventRouterResponse</returns>
public ItemEventRouterResponse GetOutput(string sessionId)
public ItemEventRouterResponse GetOutput(MongoId sessionId)
{
if (_outputStore.TryGetValue(sessionId, out var result))
{
@@ -40,7 +41,7 @@ public class EventOutputHolder(
return result;
}
public void ResetOutput(string sessionId)
public void ResetOutput(MongoId sessionId)
{
var pmcProfile = profileHelper.GetPmcProfile(sessionId);
@@ -92,7 +93,7 @@ public class EventOutputHolder(
/// Update output object with most recent values from player profile
/// </summary>
/// <param name="sessionId"> Session id </param>
public void UpdateOutputProperties(string sessionId)
public void UpdateOutputProperties(MongoId sessionId)
{
var pmcData = profileHelper.GetPmcProfile(sessionId);
var profileChanges = _outputStore[sessionId].ProfileChanges[sessionId];
@@ -187,7 +188,7 @@ public class EventOutputHolder(
/// <returns> Dictionary of hideout productions </returns>
protected Dictionary<string, Production>? GetProductionsFromProfileAndFlagComplete(
Dictionary<string, Production>? productions,
string sessionId
MongoId sessionId
)
{
foreach (var production in productions)
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
namespace SPTarkov.Server.Core.Routers;
@@ -34,7 +35,7 @@ public class HttpRouter
}
*/
public async ValueTask<string?> GetResponse(HttpRequest req, string sessionID, string? body)
public async ValueTask<string?> GetResponse(HttpRequest req, MongoId sessionID, string? body)
{
var wrapper = new ResponseWrapper("");
@@ -49,7 +50,7 @@ public class HttpRouter
protected async ValueTask<bool> HandleRoute(
HttpRequest request,
string sessionID,
MongoId sessionID,
ResponseWrapper wrapper,
IEnumerable<Router> routers,
bool dynamic,
@@ -1,4 +1,5 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Utils;
using SPTarkov.Server.Core.Services.Image;
using SPTarkov.Server.Core.Utils;
@@ -6,45 +7,32 @@ using SPTarkov.Server.Core.Utils;
namespace SPTarkov.Server.Core.Routers;
[Injectable]
public class ImageRouter
public class ImageRouter(
FileUtil fileUtil,
ImageRouterService imageRouterService,
HttpFileUtil httpFileUtil,
ISptLogger<ImageRouter> logger
)
{
private readonly ISptLogger<ImageRouter> _logger;
protected FileUtil _fileUtil;
protected HttpFileUtil _httpFileUtil;
protected ImageRouterService _imageRouterService;
public ImageRouter(
FileUtil fileUtil,
ImageRouterService imageRouteService,
HttpFileUtil httpFileUtil,
ISptLogger<ImageRouter> logger
)
{
_fileUtil = fileUtil;
_imageRouterService = imageRouteService;
_httpFileUtil = httpFileUtil;
_logger = logger;
}
public void AddRoute(string key, string valueToAdd)
{
_imageRouterService.AddRoute(key.ToLowerInvariant(), valueToAdd);
imageRouterService.AddRoute(key.ToLowerInvariant(), valueToAdd);
}
public async Task SendImage(string sessionId, HttpRequest req, HttpResponse resp, object body)
public async Task SendImage(MongoId sessionId, HttpRequest req, HttpResponse resp, object body)
{
// remove file extension
var url = _fileUtil.StripExtension(req.Path, true);
var url = fileUtil.StripExtension(req.Path, true);
// Send image
var urlKeyLower = url.ToLowerInvariant();
if (_imageRouterService.ExistsByKey(urlKeyLower))
if (imageRouterService.ExistsByKey(urlKeyLower))
{
await _httpFileUtil.SendFile(resp, _imageRouterService.GetByKey(urlKeyLower));
await httpFileUtil.SendFile(resp, imageRouterService.GetByKey(urlKeyLower));
return;
}
_logger.Warning($"IMAGE: {url} not found");
logger.Warning($"IMAGE: {url} not found");
}
public ValueTask<string> GetImage()
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Helpers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
using SPTarkov.Server.Core.Models.Utils;
using SPTarkov.Server.Core.Services;
@@ -31,7 +32,7 @@ public class ItemEventRouter(
/// <returns> Item response </returns>
public async ValueTask<ItemEventRouterResponse> HandleEvents(
ItemEventRouterRequest info,
string sessionID
MongoId sessionID
)
{
var output = eventOutputHolder.GetOutput(sessionID);
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.Customization;
@@ -11,20 +12,11 @@ using SPTarkov.Server.Core.Models.Utils;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class CustomizationItemEventRouter : ItemEventRouterDefinition
public class CustomizationItemEventRouter(
ISptLogger<CustomizationItemEventRouter> logger,
CustomizationCallbacks customizationCallbacks
) : ItemEventRouterDefinition
{
protected CustomizationCallbacks _customizationCallbacks;
protected ISptLogger<CustomizationItemEventRouter> _logger;
public CustomizationItemEventRouter(
ISptLogger<CustomizationItemEventRouter> logger,
CustomizationCallbacks customizationCallbacks
)
{
_logger = logger;
_customizationCallbacks = customizationCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return new List<HandledRoute>
@@ -38,7 +30,7 @@ public class CustomizationItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -46,7 +38,7 @@ public class CustomizationItemEventRouter : ItemEventRouterDefinition
{
case ItemEventActions.CUSTOMIZATION_BUY:
return new ValueTask<ItemEventRouterResponse>(
_customizationCallbacks.BuyCustomisation(
customizationCallbacks.BuyCustomisation(
pmcData,
body as BuyClothingRequestData,
sessionID
@@ -54,7 +46,7 @@ public class CustomizationItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.CUSTOMIZATION_SET:
return new ValueTask<ItemEventRouterResponse>(
_customizationCallbacks.SetCustomisation(
customizationCallbacks.SetCustomisation(
pmcData,
body as CustomizationSetRequest,
sessionID
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.Health;
@@ -10,15 +11,8 @@ using SPTarkov.Server.Core.Models.Enums;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class HealthItemEventRouter : ItemEventRouterDefinition
public class HealthItemEventRouter(HealthCallbacks healthCallbacks) : ItemEventRouterDefinition
{
protected HealthCallbacks _healthCallbacks;
public HealthItemEventRouter(HealthCallbacks healthCallbacks)
{
_healthCallbacks = healthCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return
@@ -33,7 +27,7 @@ public class HealthItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -41,15 +35,15 @@ public class HealthItemEventRouter : ItemEventRouterDefinition
{
case ItemEventActions.EAT:
return new ValueTask<ItemEventRouterResponse>(
_healthCallbacks.OffraidEat(pmcData, body as OffraidEatRequestData, sessionID)
healthCallbacks.OffraidEat(pmcData, body as OffraidEatRequestData, sessionID)
);
case ItemEventActions.HEAL:
return new ValueTask<ItemEventRouterResponse>(
_healthCallbacks.OffraidHeal(pmcData, body as OffraidHealRequestData, sessionID)
healthCallbacks.OffraidHeal(pmcData, body as OffraidHealRequestData, sessionID)
);
case ItemEventActions.RESTORE_HEALTH:
return new ValueTask<ItemEventRouterResponse>(
_healthCallbacks.HealthTreatment(
healthCallbacks.HealthTreatment(
pmcData,
body as HealthTreatmentRequestData,
sessionID
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.Hideout;
@@ -10,15 +11,8 @@ using SPTarkov.Server.Core.Models.Enums;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class HideoutItemEventRouter : ItemEventRouterDefinition
public class HideoutItemEventRouter(HideoutCallbacks hideoutCallbacks) : ItemEventRouterDefinition
{
protected HideoutCallbacks _hideoutCallbacks;
public HideoutItemEventRouter(HideoutCallbacks hideoutCallbacks)
{
_hideoutCallbacks = hideoutCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return
@@ -46,7 +40,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -54,7 +48,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
{
case HideoutEventActions.HIDEOUT_UPGRADE:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.Upgrade(
hideoutCallbacks.Upgrade(
pmcData,
body as HideoutUpgradeRequestData,
sessionID,
@@ -63,7 +57,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_UPGRADE_COMPLETE:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.UpgradeComplete(
hideoutCallbacks.UpgradeComplete(
pmcData,
body as HideoutUpgradeCompleteRequestData,
sessionID,
@@ -72,7 +66,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_PUT_ITEMS_IN_AREA_SLOTS:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.PutItemsInAreaSlots(
hideoutCallbacks.PutItemsInAreaSlots(
pmcData,
body as HideoutPutItemInRequestData,
sessionID
@@ -80,7 +74,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_TAKE_ITEMS_FROM_AREA_SLOTS:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.TakeItemsFromAreaSlots(
hideoutCallbacks.TakeItemsFromAreaSlots(
pmcData,
body as HideoutTakeItemOutRequestData,
sessionID
@@ -88,7 +82,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_TOGGLE_AREA:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.ToggleArea(
hideoutCallbacks.ToggleArea(
pmcData,
body as HideoutToggleAreaRequestData,
sessionID
@@ -96,7 +90,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_SINGLE_PRODUCTION_START:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.SingleProductionStart(
hideoutCallbacks.SingleProductionStart(
pmcData,
body as HideoutSingleProductionStartRequestData,
sessionID
@@ -104,7 +98,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_SCAV_CASE_PRODUCTION_START:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.ScavCaseProductionStart(
hideoutCallbacks.ScavCaseProductionStart(
pmcData,
body as HideoutScavCaseStartRequestData,
sessionID
@@ -112,7 +106,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_CONTINUOUS_PRODUCTION_START:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.ContinuousProductionStart(
hideoutCallbacks.ContinuousProductionStart(
pmcData,
body as HideoutContinuousProductionStartRequestData,
sessionID
@@ -120,7 +114,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_TAKE_PRODUCTION:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.TakeProduction(
hideoutCallbacks.TakeProduction(
pmcData,
body as HideoutTakeProductionRequestData,
sessionID
@@ -128,7 +122,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_RECORD_SHOOTING_RANGE_POINTS:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.RecordShootingRangePoints(
hideoutCallbacks.RecordShootingRangePoints(
pmcData,
body as RecordShootingRangePoints,
sessionID,
@@ -137,7 +131,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_IMPROVE_AREA:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.ImproveArea(
hideoutCallbacks.ImproveArea(
pmcData,
body as HideoutImproveAreaRequestData,
sessionID
@@ -145,7 +139,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_CANCEL_PRODUCTION_COMMAND:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.CancelProduction(
hideoutCallbacks.CancelProduction(
pmcData,
body as HideoutCancelProductionRequestData,
sessionID
@@ -153,7 +147,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.CicleOfCultistProductionStart(
hideoutCallbacks.CicleOfCultistProductionStart(
pmcData,
body as HideoutCircleOfCultistProductionStartRequestData,
sessionID
@@ -161,7 +155,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_DELETE_PRODUCTION_COMMAND:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.HideoutDeleteProductionCommand(
hideoutCallbacks.HideoutDeleteProductionCommand(
pmcData,
body as HideoutDeleteProductionRequestData,
sessionID
@@ -169,7 +163,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_CUSTOMIZATION_APPLY_COMMAND:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.HideoutCustomizationApplyCommand(
hideoutCallbacks.HideoutCustomizationApplyCommand(
pmcData,
body as HideoutCustomizationApplyRequestData,
sessionID
@@ -177,7 +171,7 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition
);
case HideoutEventActions.HIDEOUT_CUSTOMIZATION_SET_MANNEQUIN_POSE:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.HideoutCustomizationSetMannequinPose(
hideoutCallbacks.HideoutCustomizationSetMannequinPose(
pmcData,
body as HideoutCustomizationSetMannequinPoseRequest,
sessionID
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.Insurance;
@@ -10,15 +11,9 @@ using SPTarkov.Server.Core.Models.Enums;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class InsuranceItemEventRouter : ItemEventRouterDefinition
public class InsuranceItemEventRouter(InsuranceCallbacks insuranceCallbacks)
: ItemEventRouterDefinition
{
protected InsuranceCallbacks _insuranceCallbacks;
public InsuranceItemEventRouter(InsuranceCallbacks insuranceCallbacks)
{
_insuranceCallbacks = insuranceCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return new List<HandledRoute> { new(ItemEventActions.INSURE, false) };
@@ -28,7 +23,7 @@ public class InsuranceItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -36,7 +31,7 @@ public class InsuranceItemEventRouter : ItemEventRouterDefinition
{
case ItemEventActions.INSURE:
return new ValueTask<ItemEventRouterResponse>(
_insuranceCallbacks.Insure(pmcData, body as InsureRequestData, sessionID)
insuranceCallbacks.Insure(pmcData, body as InsureRequestData, sessionID)
);
default:
throw new Exception(
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.Hideout;
@@ -12,20 +13,11 @@ using SPTarkov.Server.Core.Models.Enums;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class InventoryItemEventRouter : ItemEventRouterDefinition
public class InventoryItemEventRouter(
InventoryCallbacks inventoryCallbacks,
HideoutCallbacks hideoutCallbacks
) : ItemEventRouterDefinition
{
protected HideoutCallbacks _hideoutCallbacks;
protected InventoryCallbacks _inventoryCallbacks;
public InventoryItemEventRouter(
InventoryCallbacks inventoryCallbacks,
HideoutCallbacks hideoutCallbacks
)
{
_inventoryCallbacks = inventoryCallbacks;
_hideoutCallbacks = hideoutCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return new List<HandledRoute>
@@ -60,7 +52,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -68,7 +60,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
{
case ItemEventActions.MOVE:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.MoveItem(
inventoryCallbacks.MoveItem(
pmcData,
body as InventoryMoveRequestData,
sessionID,
@@ -77,7 +69,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.REMOVE:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.RemoveItem(
inventoryCallbacks.RemoveItem(
pmcData,
body as InventoryRemoveRequestData,
sessionID,
@@ -86,7 +78,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.SPLIT:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.SplitItem(
inventoryCallbacks.SplitItem(
pmcData,
body as InventorySplitRequestData,
sessionID,
@@ -95,7 +87,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.MERGE:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.MergeItem(
inventoryCallbacks.MergeItem(
pmcData,
body as InventoryMergeRequestData,
sessionID,
@@ -104,7 +96,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.TRANSFER:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.TransferItem(
inventoryCallbacks.TransferItem(
pmcData,
body as InventoryTransferRequestData,
sessionID,
@@ -113,7 +105,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.SWAP:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.SwapItem(
inventoryCallbacks.SwapItem(
pmcData,
body as InventorySwapRequestData,
sessionID
@@ -121,7 +113,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.FOLD:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.FoldItem(
inventoryCallbacks.FoldItem(
pmcData,
body as InventoryFoldRequestData,
sessionID
@@ -129,7 +121,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.TOGGLE:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.ToggleItem(
inventoryCallbacks.ToggleItem(
pmcData,
body as InventoryToggleRequestData,
sessionID
@@ -137,11 +129,11 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.TAG:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.TagItem(pmcData, body as InventoryTagRequestData, sessionID)
inventoryCallbacks.TagItem(pmcData, body as InventoryTagRequestData, sessionID)
);
case ItemEventActions.BIND:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.BindItem(
inventoryCallbacks.BindItem(
pmcData,
body as InventoryBindRequestData,
sessionID,
@@ -150,7 +142,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.UNBIND:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.UnBindItem(
inventoryCallbacks.UnBindItem(
pmcData,
body as InventoryBindRequestData,
sessionID,
@@ -159,7 +151,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.EXAMINE:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.ExamineItem(
inventoryCallbacks.ExamineItem(
pmcData,
body as InventoryExamineRequestData,
sessionID,
@@ -168,7 +160,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.READ_ENCYCLOPEDIA:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.ReadEncyclopedia(
inventoryCallbacks.ReadEncyclopedia(
pmcData,
body as InventoryReadEncyclopediaRequestData,
sessionID
@@ -176,7 +168,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.APPLY_INVENTORY_CHANGES:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.SortInventory(
inventoryCallbacks.SortInventory(
pmcData,
body as InventorySortRequestData,
sessionID,
@@ -185,7 +177,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.CREATE_MAP_MARKER:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.CreateMapMarker(
inventoryCallbacks.CreateMapMarker(
pmcData,
body as InventoryCreateMarkerRequestData,
sessionID,
@@ -194,7 +186,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.DELETE_MAP_MARKER:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.DeleteMapMarker(
inventoryCallbacks.DeleteMapMarker(
pmcData,
body as InventoryDeleteMarkerRequestData,
sessionID,
@@ -203,7 +195,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.EDIT_MAP_MARKER:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.EditMapMarker(
inventoryCallbacks.EditMapMarker(
pmcData,
body as InventoryEditMarkerRequestData,
sessionID,
@@ -212,7 +204,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.OPEN_RANDOM_LOOT_CONTAINER:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.OpenRandomLootContainer(
inventoryCallbacks.OpenRandomLootContainer(
pmcData,
body as OpenRandomLootContainerRequestData,
sessionID,
@@ -221,7 +213,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.HIDEOUT_QTE_EVENT:
return new ValueTask<ItemEventRouterResponse>(
_hideoutCallbacks.HandleQTEEvent(
hideoutCallbacks.HandleQTEEvent(
pmcData,
body as HandleQTEEventRequestData,
sessionID,
@@ -230,7 +222,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.REDEEM_PROFILE_REWARD:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.RedeemProfileReward(
inventoryCallbacks.RedeemProfileReward(
pmcData,
body as RedeemProfileRequestData,
sessionID,
@@ -239,7 +231,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.SET_FAVORITE_ITEMS:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.SetFavoriteItem(
inventoryCallbacks.SetFavoriteItem(
pmcData,
body as SetFavoriteItems,
sessionID,
@@ -248,7 +240,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.QUEST_FAIL:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.FailQuest(
inventoryCallbacks.FailQuest(
pmcData,
body as FailQuestRequestData,
sessionID,
@@ -257,7 +249,7 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.PIN_LOCK:
return new ValueTask<ItemEventRouterResponse>(
_inventoryCallbacks.PinOrLock(
inventoryCallbacks.PinOrLock(
pmcData,
body as PinOrLockItemRequest,
sessionID,
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -10,15 +11,8 @@ using SPTarkov.Server.Core.Models.Enums;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class NoteItemEventRouter : ItemEventRouterDefinition
public class NoteItemEventRouter(NoteCallbacks noteCallbacks) : ItemEventRouterDefinition
{
protected NoteCallbacks _noteCallbacks;
public NoteItemEventRouter(NoteCallbacks noteCallbacks)
{
_noteCallbacks = noteCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return new List<HandledRoute>
@@ -33,7 +27,7 @@ public class NoteItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -41,15 +35,15 @@ public class NoteItemEventRouter : ItemEventRouterDefinition
{
case ItemEventActions.ADD_NOTE:
return new ValueTask<ItemEventRouterResponse>(
_noteCallbacks.AddNote(pmcData, body as NoteActionRequest, sessionID)
noteCallbacks.AddNote(pmcData, body as NoteActionRequest, sessionID)
);
case ItemEventActions.EDIT_NOTE:
return new ValueTask<ItemEventRouterResponse>(
_noteCallbacks.EditNote(pmcData, body as NoteActionRequest, sessionID)
noteCallbacks.EditNote(pmcData, body as NoteActionRequest, sessionID)
);
case ItemEventActions.DELETE_NOTE:
return new ValueTask<ItemEventRouterResponse>(
_noteCallbacks.DeleteNote(pmcData, body as NoteActionRequest, sessionID)
noteCallbacks.DeleteNote(pmcData, body as NoteActionRequest, sessionID)
);
default:
throw new Exception(
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -10,15 +11,8 @@ using SPTarkov.Server.Core.Models.Enums;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class QuestItemEventRouter : ItemEventRouterDefinition
public class QuestItemEventRouter(QuestCallbacks questCallbacks) : ItemEventRouterDefinition
{
protected QuestCallbacks _questCallbacks;
public QuestItemEventRouter(QuestCallbacks questCallbacks)
{
_questCallbacks = questCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return new List<HandledRoute>
@@ -34,7 +28,7 @@ public class QuestItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -42,11 +36,11 @@ public class QuestItemEventRouter : ItemEventRouterDefinition
{
case ItemEventActions.QUEST_ACCEPT:
return new ValueTask<ItemEventRouterResponse>(
_questCallbacks.AcceptQuest(pmcData, body as AcceptQuestRequestData, sessionID)
questCallbacks.AcceptQuest(pmcData, body as AcceptQuestRequestData, sessionID)
);
case ItemEventActions.QUEST_COMPLETE:
return new ValueTask<ItemEventRouterResponse>(
_questCallbacks.CompleteQuest(
questCallbacks.CompleteQuest(
pmcData,
body as CompleteQuestRequestData,
sessionID
@@ -54,7 +48,7 @@ public class QuestItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.QUEST_HANDOVER:
return new ValueTask<ItemEventRouterResponse>(
_questCallbacks.HandoverQuest(
questCallbacks.HandoverQuest(
pmcData,
body as HandoverQuestRequestData,
sessionID
@@ -62,7 +56,7 @@ public class QuestItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.REPEATABLE_QUEST_CHANGE:
return new ValueTask<ItemEventRouterResponse>(
_questCallbacks.ChangeRepeatableQuest(
questCallbacks.ChangeRepeatableQuest(
pmcData,
body as RepeatableQuestChangeRequest,
sessionID
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -10,15 +11,8 @@ using SPTarkov.Server.Core.Models.Enums;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class RagfairItemEventRouter : ItemEventRouterDefinition
public class RagfairItemEventRouter(RagfairCallbacks ragfairCallbacks) : ItemEventRouterDefinition
{
protected RagfairCallbacks _ragfairCallbacks;
public RagfairItemEventRouter(RagfairCallbacks ragfairCallbacks)
{
_ragfairCallbacks = ragfairCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return new List<HandledRoute>
@@ -33,7 +27,7 @@ public class RagfairItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -41,23 +35,15 @@ public class RagfairItemEventRouter : ItemEventRouterDefinition
{
case ItemEventActions.RAGFAIR_ADD_OFFER:
return new ValueTask<ItemEventRouterResponse>(
_ragfairCallbacks.AddOffer(pmcData, body as AddOfferRequestData, sessionID)
ragfairCallbacks.AddOffer(pmcData, body as AddOfferRequestData, sessionID)
);
case ItemEventActions.RAGFAIR_REMOVE_OFFER:
return new ValueTask<ItemEventRouterResponse>(
_ragfairCallbacks.RemoveOffer(
pmcData,
body as RemoveOfferRequestData,
sessionID
)
ragfairCallbacks.RemoveOffer(pmcData, body as RemoveOfferRequestData, sessionID)
);
case ItemEventActions.RAGFAIR_RENEW_OFFER:
return new ValueTask<ItemEventRouterResponse>(
_ragfairCallbacks.ExtendOffer(
pmcData,
body as ExtendOfferRequestData,
sessionID
)
ragfairCallbacks.ExtendOffer(pmcData, body as ExtendOfferRequestData, sessionID)
);
default:
throw new Exception(
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -10,15 +11,8 @@ using SPTarkov.Server.Core.Models.Enums;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class RepairItemEventRouter : ItemEventRouterDefinition
public class RepairItemEventRouter(RepairCallbacks repairCallbacks) : ItemEventRouterDefinition
{
protected RepairCallbacks _repairCallbacks;
public RepairItemEventRouter(RepairCallbacks repairCallbacks)
{
_repairCallbacks = repairCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return new List<HandledRoute>
@@ -32,7 +26,7 @@ public class RepairItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -40,11 +34,11 @@ public class RepairItemEventRouter : ItemEventRouterDefinition
{
case ItemEventActions.REPAIR:
return new ValueTask<ItemEventRouterResponse>(
_repairCallbacks.Repair(pmcData, body as RepairActionDataRequest, sessionID)
repairCallbacks.Repair(pmcData, body as RepairActionDataRequest, sessionID)
);
case ItemEventActions.TRADER_REPAIR:
return new ValueTask<ItemEventRouterResponse>(
_repairCallbacks.TraderRepair(
repairCallbacks.TraderRepair(
pmcData,
body as TraderRepairActionDataRequest,
sessionID
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -10,15 +11,8 @@ using SPTarkov.Server.Core.Models.Enums;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class TradeItemEventRouter : ItemEventRouterDefinition
public class TradeItemEventRouter(TradeCallbacks tradeCallbacks) : ItemEventRouterDefinition
{
protected TradeCallbacks _tradeCallbacks;
public TradeItemEventRouter(TradeCallbacks tradeCallbacks)
{
_tradeCallbacks = tradeCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return new List<HandledRoute>
@@ -33,7 +27,7 @@ public class TradeItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -41,7 +35,7 @@ public class TradeItemEventRouter : ItemEventRouterDefinition
{
case ItemEventActions.TRADING_CONFIRM:
return new ValueTask<ItemEventRouterResponse>(
_tradeCallbacks.ProcessTrade(
tradeCallbacks.ProcessTrade(
pmcData,
body as ProcessBaseTradeRequestData,
sessionID
@@ -49,7 +43,7 @@ public class TradeItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.RAGFAIR_BUY_OFFER:
return new ValueTask<ItemEventRouterResponse>(
_tradeCallbacks.ProcessRagfairTrade(
tradeCallbacks.ProcessRagfairTrade(
pmcData,
body as ProcessRagfairTradeRequestData,
sessionID
@@ -57,7 +51,7 @@ public class TradeItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.SELL_ALL_FROM_SAVAGE:
return new ValueTask<ItemEventRouterResponse>(
_tradeCallbacks.SellAllFromSavage(
tradeCallbacks.SellAllFromSavage(
pmcData,
body as SellScavItemsToFenceRequestData,
sessionID
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.ItemEvent;
@@ -10,15 +11,9 @@ using SPTarkov.Server.Core.Models.Enums;
namespace SPTarkov.Server.Core.Routers.ItemEvents;
[Injectable]
public class WishlistItemEventRouter : ItemEventRouterDefinition
public class WishlistItemEventRouter(WishlistCallbacks wishlistCallbacks)
: ItemEventRouterDefinition
{
protected WishlistCallbacks _wishlistCallbacks;
public WishlistItemEventRouter(WishlistCallbacks wishlistCallbacks)
{
_wishlistCallbacks = wishlistCallbacks;
}
protected override List<HandledRoute> GetHandledRoutes()
{
return new List<HandledRoute>
@@ -33,7 +28,7 @@ public class WishlistItemEventRouter : ItemEventRouterDefinition
string url,
PmcData pmcData,
BaseInteractionRequestData body,
string sessionID,
MongoId sessionID,
ItemEventRouterResponse output
)
{
@@ -41,7 +36,7 @@ public class WishlistItemEventRouter : ItemEventRouterDefinition
{
case ItemEventActions.ADD_TO_WISHLIST:
return new ValueTask<ItemEventRouterResponse>(
_wishlistCallbacks.AddToWishlist(
wishlistCallbacks.AddToWishlist(
pmcData,
body as AddToWishlistRequest,
sessionID
@@ -49,7 +44,7 @@ public class WishlistItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.REMOVE_FROM_WISHLIST:
return new ValueTask<ItemEventRouterResponse>(
_wishlistCallbacks.RemoveFromWishlist(
wishlistCallbacks.RemoveFromWishlist(
pmcData,
body as RemoveFromWishlistRequest,
sessionID
@@ -57,7 +52,7 @@ public class WishlistItemEventRouter : ItemEventRouterDefinition
);
case ItemEventActions.CHANGE_WISHLIST_ITEM_CATEGORY:
return new ValueTask<ItemEventRouterResponse>(
_wishlistCallbacks.ChangeWishlistItemCategory(
wishlistCallbacks.ChangeWishlistItemCategory(
pmcData,
body as ChangeWishlistItemCategoryRequest,
sessionID
@@ -1,6 +1,7 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Loaders;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Utils;
using SPTarkov.Server.Core.Utils;
@@ -13,7 +14,7 @@ public class BundleSerializer(
HttpFileUtil httpFileUtil
) : ISerializer
{
public async Task Serialize(string sessionID, HttpRequest req, HttpResponse resp, object? body)
public async Task Serialize(MongoId sessionID, HttpRequest req, HttpResponse resp, object? body)
{
var key = req.Path.Value.Split("/bundle/")[1];
var bundle = bundleLoader.GetBundle(key);
@@ -1,21 +1,15 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
namespace SPTarkov.Server.Core.Routers.Serializers;
[Injectable]
public class ImageSerializer : ISerializer
public class ImageSerializer(ImageRouter imageRouter) : ISerializer
{
protected ImageRouter _imageRouter;
public ImageSerializer(ImageRouter imageRouter)
public async Task Serialize(MongoId sessionID, HttpRequest req, HttpResponse resp, object? body)
{
_imageRouter = imageRouter;
}
public async Task Serialize(string sessionID, HttpRequest req, HttpResponse resp, object? body)
{
await _imageRouter.SendImage(sessionID, req, resp, body);
await imageRouter.SendImage(sessionID, req, resp, body);
}
public bool CanHandle(string route)
@@ -2,6 +2,7 @@
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Helpers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Utils;
namespace SPTarkov.Server.Core.Routers.Serializers;
@@ -13,7 +14,7 @@ public class NotifySerializer(
HttpServerHelper httpServerHelper
) : ISerializer
{
public async Task Serialize(string sessionID, HttpRequest req, HttpResponse resp, object? body)
public async Task Serialize(MongoId sessionID, HttpRequest req, HttpResponse resp, object? body)
{
var splittedUrl = req.Path.Value.Split("/");
var tmpSessionID = splittedUrl[^1].Split("?last_id")[0];
@@ -10,14 +10,14 @@ namespace SPTarkov.Server.Core.Routers.Static;
[Injectable]
public class InraidStaticRouter : StaticRouter
{
public InraidStaticRouter(InraidCallbacks inraidCallbacks, JsonUtil jsonUtil)
public InraidStaticRouter(InraidCallbacks inRaidCallbacks, JsonUtil jsonUtil)
: base(
jsonUtil,
[
new RouteAction(
"/raid/profile/scavsave",
async (url, info, sessionID, output) =>
await inraidCallbacks.SaveProgress(
await inRaidCallbacks.SaveProgress(
url,
info as ScavSaveRequestData,
sessionID
@@ -27,12 +27,12 @@ public class InraidStaticRouter : StaticRouter
new RouteAction(
"/singleplayer/settings/raid/menu",
async (url, info, sessionID, output) =>
await inraidCallbacks.GetRaidMenuSettings()
await inRaidCallbacks.GetRaidMenuSettings()
),
new RouteAction(
"/singleplayer/scav/traitorscavhostile",
async (url, info, sessionID, output) =>
await inraidCallbacks.GetTraitorScavHostileChance(
await inRaidCallbacks.GetTraitorScavHostileChance(
url,
info as EmptyRequestData,
sessionID
@@ -41,7 +41,7 @@ public class InraidStaticRouter : StaticRouter
new RouteAction(
"/singleplayer/bosstypes",
async (url, info, sessionID, output) =>
await inraidCallbacks.GetBossTypes(url, info as EmptyRequestData, sessionID)
await inRaidCallbacks.GetBossTypes(url, info as EmptyRequestData, sessionID)
),
]
) { }
@@ -2,6 +2,7 @@ using System.Collections.Concurrent;
using System.Diagnostics;
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Profile;
using SPTarkov.Server.Core.Models.Spt.Config;
@@ -14,13 +15,13 @@ namespace SPTarkov.Server.Core.Servers;
[Injectable(InjectionType.Singleton)]
public class SaveServer(
FileUtil _fileUtil,
IEnumerable<SaveLoadRouter> _saveLoadRouters,
JsonUtil _jsonUtil,
HashUtil _hashUtil,
ServerLocalisationService _serverLocalisationService,
ISptLogger<SaveServer> _logger,
ConfigServer _configServer
FileUtil fileUtil,
IEnumerable<SaveLoadRouter> saveLoadRouters,
JsonUtil jsonUtil,
HashUtil hashUtil,
ServerLocalisationService serverLocalisationService,
ISptLogger<SaveServer> logger,
ConfigServer configServer
)
{
protected const string profileFilepath = "user/profiles/";
@@ -29,8 +30,8 @@ public class SaveServer(
protected readonly Dictionary<string, Func<SptProfile, SptProfile>> onBeforeSaveCallbacks =
new();
protected readonly ConcurrentDictionary<string, SptProfile> profiles = new();
protected readonly ConcurrentDictionary<string, string> saveMd5 = new();
protected readonly ConcurrentDictionary<MongoId, SptProfile> profiles = new();
protected readonly ConcurrentDictionary<MongoId, string> saveMd5 = new();
/// <summary>
/// Add callback to occur prior to saving profile changes
@@ -60,26 +61,26 @@ public class SaveServer(
public async Task LoadAsync()
{
// get files to load
if (!_fileUtil.DirectoryExists(profileFilepath))
if (!fileUtil.DirectoryExists(profileFilepath))
{
_fileUtil.CreateDirectory(profileFilepath);
fileUtil.CreateDirectory(profileFilepath);
}
var files = _fileUtil
var files = fileUtil
.GetFiles(profileFilepath)
.Where(item => _fileUtil.GetFileExtension(item) == "json");
.Where(item => fileUtil.GetFileExtension(item) == "json");
// load profiles
var stopwatch = Stopwatch.StartNew();
foreach (var file in files)
{
await LoadProfileAsync(_fileUtil.StripExtension(file));
await LoadProfileAsync(fileUtil.StripExtension(file));
}
stopwatch.Stop();
if (_logger.IsLogEnabled(LogLevel.Debug))
if (logger.IsLogEnabled(LogLevel.Debug))
{
_logger.Debug(
logger.Debug(
$"{files.Count()} Profiles took: {stopwatch.ElapsedMilliseconds}ms to load."
);
}
@@ -97,9 +98,9 @@ public class SaveServer(
totalTime += await SaveProfileAsync(sessionID.Key);
}
if (_logger.IsLogEnabled(LogLevel.Debug))
if (logger.IsLogEnabled(LogLevel.Debug))
{
_logger.Debug($"Saved {profiles.Count} profiles, took: {totalTime}ms");
logger.Debug($"Saved {profiles.Count} profiles, took: {totalTime}ms");
}
}
@@ -109,16 +110,16 @@ public class SaveServer(
/// <param name="sessionId"> Session ID </param>
/// <returns> SptProfile of the player </returns>
/// <exception cref="Exception"> Thrown when sessionId is null / empty or no profiles with that ID are found </exception>
public SptProfile GetProfile(string sessionId)
public SptProfile GetProfile(MongoId sessionId)
{
if (string.IsNullOrEmpty(sessionId))
if (sessionId.IsEmpty())
{
throw new Exception(
"session id provided was empty, did you restart the server while the game was running?"
);
}
if (profiles == null || profiles.Count == 0)
if (profiles == null || profiles.IsEmpty)
{
throw new Exception($"no profiles found in saveServer with id: {sessionId}");
}
@@ -131,7 +132,7 @@ public class SaveServer(
return sptProfile;
}
public bool ProfileExists(string id)
public bool ProfileExists(MongoId id)
{
return profiles.ContainsKey(id);
}
@@ -140,7 +141,7 @@ public class SaveServer(
/// Gets all profiles from memory
/// </summary>
/// <returns> Dictionary of Profiles with their ID as Keys. </returns>
public Dictionary<string, SptProfile> GetProfiles()
public Dictionary<MongoId, SptProfile> GetProfiles()
{
return profiles.ToDictionary();
}
@@ -150,7 +151,7 @@ public class SaveServer(
/// </summary>
/// <param name="sessionID"> ID of profile to remove </param>
/// <returns> True when deleted, false when profile not found </returns>
public bool DeleteProfileById(string sessionID)
public bool DeleteProfileById(MongoId sessionID)
{
if (profiles.ContainsKey(sessionID))
{
@@ -170,13 +171,22 @@ public class SaveServer(
/// <exception cref="Exception"> Thrown when profile already exists </exception>
public void CreateProfile(Info profileInfo)
{
if (profiles.ContainsKey(profileInfo.ProfileId))
if (!profileInfo.ProfileId.HasValue)
{
throw new Exception($"profile already exists for sessionId: {profileInfo.ProfileId}");
// TODO: Localize me
throw new Exception("Creating profile failed: profile has no sessionId");
}
if (profiles.ContainsKey(profileInfo.ProfileId.Value))
{
// TODO: Localize me
throw new Exception(
$"Creating profile failed: profile already exists for sessionId: {profileInfo.ProfileId}"
);
}
profiles.TryAdd(
profileInfo.ProfileId,
profileInfo.ProfileId.Value,
new SptProfile
{
ProfileInfo = profileInfo,
@@ -195,7 +205,7 @@ public class SaveServer(
/// <param name="profileDetails"> Profile to save </param>
public void AddProfile(SptProfile profileDetails)
{
profiles.TryAdd(profileDetails.ProfileInfo.ProfileId, profileDetails);
profiles.TryAdd(profileDetails.ProfileInfo!.ProfileId!.Value, profileDetails);
}
/// <summary>
@@ -203,18 +213,18 @@ public class SaveServer(
/// Execute saveLoadRouters callbacks after being loaded into memory.
/// </summary>
/// <param name="sessionID"> ID of profile to store in memory </param>
public async Task LoadProfileAsync(string sessionID)
public async Task LoadProfileAsync(MongoId sessionID)
{
var filename = $"{sessionID}.json";
var filename = $"{sessionID.ToString()}.json";
var filePath = $"{profileFilepath}{filename}";
if (_fileUtil.FileExists(filePath))
if (fileUtil.FileExists(filePath))
// File found, store in profiles[]
{
profiles[sessionID] = await _jsonUtil.DeserializeFromFileAsync<SptProfile>(filePath);
profiles[sessionID] = await jsonUtil.DeserializeFromFileAsync<SptProfile>(filePath);
}
// Run callbacks
foreach (var callback in _saveLoadRouters) // HealthSaveLoadRouter, InraidSaveLoadRouter, InsuranceSaveLoadRouter, ProfileSaveLoadRouter. THESE SHOULD EXIST IN HERE
foreach (var callback in saveLoadRouters) // HealthSaveLoadRouter, InraidSaveLoadRouter, InsuranceSaveLoadRouter, ProfileSaveLoadRouter. THESE SHOULD EXIST IN HERE
{
profiles[sessionID] = callback.HandleLoad(GetProfile(sessionID));
}
@@ -226,9 +236,9 @@ public class SaveServer(
/// </summary>
/// <param name="sessionID"> Profile id (user/profiles/id.json) </param>
/// <returns> Time taken to save the profile in seconds </returns>
public async Task<long> SaveProfileAsync(string sessionID)
public async Task<long> SaveProfileAsync(MongoId sessionID)
{
var filePath = $"{profileFilepath}{sessionID}.json";
var filePath = $"{profileFilepath}{sessionID.ToString()}.json";
// Run pre-save callbacks before we save into json
foreach (var callback in onBeforeSaveCallbacks)
@@ -240,8 +250,8 @@ public class SaveServer(
}
catch (Exception e)
{
_logger.Error(
_serverLocalisationService.GetText(
logger.Error(
serverLocalisationService.GetText(
"profile_save_callback_error",
new { callback, error = e }
)
@@ -251,16 +261,16 @@ public class SaveServer(
}
var start = Stopwatch.StartNew();
var jsonProfile = _jsonUtil.Serialize(
var jsonProfile = jsonUtil.Serialize(
profiles[sessionID],
!_configServer.GetConfig<CoreConfig>().Features.CompressProfile
!configServer.GetConfig<CoreConfig>().Features.CompressProfile
);
var fmd5 = await _hashUtil.GenerateHashForDataAsync(HashingAlgorithm.MD5, jsonProfile);
var fmd5 = await hashUtil.GenerateHashForDataAsync(HashingAlgorithm.MD5, jsonProfile);
if (!saveMd5.TryGetValue(sessionID, out var currentMd5) || currentMd5 != fmd5)
{
saveMd5[sessionID] = fmd5;
// save profile to disk
await _fileUtil.WriteFileAsync(filePath, jsonProfile);
await fileUtil.WriteFileAsync(filePath, jsonProfile);
}
start.Stop();
@@ -272,18 +282,18 @@ public class SaveServer(
/// </summary>
/// <param name="sessionID"> Profile ID to remove </param>
/// <returns> True if successful </returns>
public bool RemoveProfile(string sessionID)
public bool RemoveProfile(MongoId sessionID)
{
var file = $"{profileFilepath}{sessionID}.json";
if (profiles.ContainsKey(sessionID))
{
profiles.TryRemove(sessionID, out _);
if (!_fileUtil.DeleteFile(file))
if (!fileUtil.DeleteFile(file))
{
_logger.Error($"Unable to delete file, not found: {file}");
logger.Error($"Unable to delete file, not found: {file}");
}
}
return !_fileUtil.FileExists(file);
return !fileUtil.FileExists(file);
}
}