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; using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Callbacks; [Injectable] public class HealthCallbacks( HttpResponseUtil httpResponseUtil, ProfileHelper profileHelper, HealthController healthController ) { /// /// Custom spt server request found in modules/QTEPatch.cs /// /// /// HealthListener.Instance.CurrentHealth class /// session id /// empty response, no data sent back to client public ValueTask HandleWorkoutEffects(string url, WorkoutData info, MongoId sessionID) { healthController.ApplyWorkoutChanges( profileHelper.GetPmcProfile(sessionID), info, sessionID ); return new ValueTask(httpResponseUtil.EmptyResponse()); } /// /// Handle Eat /// /// Players PMC profile /// /// Session/player id /// public ItemEventRouterResponse OffraidEat( PmcData pmcData, OffraidEatRequestData info, MongoId sessionID ) { return healthController.OffRaidEat(pmcData, info, sessionID); } /// /// Handle Heal /// /// Players PMC profile /// /// Session/player id /// public ItemEventRouterResponse OffraidHeal( PmcData pmcData, OffraidHealRequestData info, MongoId sessionID ) { return healthController.OffRaidHeal(pmcData, info, sessionID); } /// /// Handle RestoreHealth /// /// Players PMC profile /// /// Session/player id /// public ItemEventRouterResponse HealthTreatment( PmcData pmcData, HealthTreatmentRequestData info, MongoId sessionID ) { return healthController.HealthTreatment(pmcData, info, sessionID); } }