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; namespace SPTarkov.Server.Core.Callbacks; [Injectable] public class InraidCallbacks(InRaidController inRaidController, HttpResponseUtil httpResponseUtil) { /// /// Handle client/location/getLocalloot /// Store active map in profile + applicationContext /// /// /// register player request /// Session id /// Null http response public ValueTask RegisterPlayer( string url, RegisterPlayerRequestData info, MongoId sessionID ) { inRaidController.AddPlayer(sessionID, info); return new ValueTask(httpResponseUtil.NullResponse()); } /// /// Handle raid/profile/scavsave /// /// /// Save progress request /// Session id /// Null http response public ValueTask SaveProgress(string url, ScavSaveRequestData info, MongoId sessionID) { inRaidController.SavePostRaidProfileForScav(info, sessionID); return new ValueTask(httpResponseUtil.NullResponse()); } /// /// Handle singleplayer/settings/raid/menu /// /// JSON as string public ValueTask GetRaidMenuSettings() { return new ValueTask( httpResponseUtil.NoBody(inRaidController.GetInRaidConfig().RaidMenuSettings) ); } /// /// Handle singleplayer/scav/traitorscavhostile /// /// public ValueTask GetTraitorScavHostileChance( string url, EmptyRequestData _, MongoId sessionID ) { return new ValueTask( httpResponseUtil.NoBody(inRaidController.GetTraitorScavHostileChance(url, sessionID)) ); } /// /// Handle singleplayer/bosstypes /// /// public ValueTask GetBossTypes(string url, EmptyRequestData _, MongoId sessionID) { return new ValueTask( httpResponseUtil.NoBody(inRaidController.GetBossTypes(url, sessionID)) ); } }