diff --git a/Libraries/SPTarkov.Server.Core/Callbacks/ItemEventCallbacks.cs b/Libraries/SPTarkov.Server.Core/Callbacks/ItemEventCallbacks.cs index 9d563b84..165f6f91 100644 --- a/Libraries/SPTarkov.Server.Core/Callbacks/ItemEventCallbacks.cs +++ b/Libraries/SPTarkov.Server.Core/Callbacks/ItemEventCallbacks.cs @@ -9,14 +9,14 @@ namespace SPTarkov.Server.Core.Callbacks; [Injectable] public class ItemEventCallbacks(HttpResponseUtil _httpResponseUtil, ItemEventRouter _itemEventRouter) { - public ValueTask HandleEvents(string url, ItemEventRouterRequest info, string sessionID) + public async ValueTask HandleEvents(string url, ItemEventRouterRequest info, string sessionID) { - var eventResponse = _itemEventRouter.HandleEvents(info, sessionID); + var eventResponse = await _itemEventRouter.HandleEvents(info, sessionID); var result = IsCriticalError(eventResponse.Warnings) ? _httpResponseUtil.GetBody(eventResponse, GetErrorCode(eventResponse.Warnings), eventResponse.Warnings[0].ErrorMessage) : _httpResponseUtil.GetBody(eventResponse); - return new ValueTask(result); + return result; } /// diff --git a/Libraries/SPTarkov.Server.Core/DI/Router.cs b/Libraries/SPTarkov.Server.Core/DI/Router.cs index 3f09bf8c..f1418f63 100644 --- a/Libraries/SPTarkov.Server.Core/DI/Router.cs +++ b/Libraries/SPTarkov.Server.Core/DI/Router.cs @@ -107,7 +107,7 @@ public abstract class DynamicRouter : Router // So instead I added the definition public abstract class ItemEventRouterDefinition : Router { - public abstract ItemEventRouterResponse? HandleItemEvent(string url, + public abstract ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEventRouter.cs index 9ed1f48b..f424cb64 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEventRouter.cs @@ -28,7 +28,7 @@ public class ItemEventRouter(ISptLogger logger, /// Event request /// Session ID /// Item response - public ItemEventRouterResponse HandleEvents(ItemEventRouterRequest info, string sessionID) + public async ValueTask HandleEvents(ItemEventRouterRequest info, string sessionID) { var output = eventOutputHolder.GetOutput(sessionID); @@ -50,7 +50,8 @@ public class ItemEventRouter(ISptLogger logger, logger.Debug($"event: {body.Action}"); } - eventRouter.HandleItemEvent(body.Action, pmcData, body, sessionID, output); + await eventRouter.HandleItemEvent(body.Action, pmcData, body, sessionID, output); + if (output.Warnings?.Count > 0) { break; diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/CustomizationItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/CustomizationItemEventRouter.cs index 3c3820c2..2022eca9 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/CustomizationItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/CustomizationItemEventRouter.cs @@ -35,15 +35,15 @@ public class CustomizationItemEventRouter : ItemEventRouterDefinition }; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case ItemEventActions.CUSTOMIZATION_BUY: - return _customizationCallbacks.BuyCustomisation(pmcData, body as BuyClothingRequestData, sessionID); + return new ValueTask(_customizationCallbacks.BuyCustomisation(pmcData, body as BuyClothingRequestData, sessionID)); case ItemEventActions.CUSTOMIZATION_SET: - return _customizationCallbacks.SetCustomisation(pmcData, body as CustomizationSetRequest, sessionID); + return new ValueTask(_customizationCallbacks.SetCustomisation(pmcData, body as CustomizationSetRequest, sessionID)); default: throw new Exception($"CustomizationItemEventRouter being used when it cant handle route {url}"); } diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/HealthItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/HealthItemEventRouter.cs index 3bf8c14f..217ca073 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/HealthItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/HealthItemEventRouter.cs @@ -32,17 +32,17 @@ public class HealthItemEventRouter : ItemEventRouterDefinition ]; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case ItemEventActions.EAT: - return _healthCallbacks.OffraidEat(pmcData, body as OffraidEatRequestData, sessionID); + return new ValueTask(_healthCallbacks.OffraidEat(pmcData, body as OffraidEatRequestData, sessionID)); case ItemEventActions.HEAL: - return _healthCallbacks.OffraidHeal(pmcData, body as OffraidHealRequestData, sessionID); + return new ValueTask(_healthCallbacks.OffraidHeal(pmcData, body as OffraidHealRequestData, sessionID)); case ItemEventActions.RESTORE_HEALTH: - return _healthCallbacks.HealthTreatment(pmcData, body as HealthTreatmentRequestData, sessionID); + return new ValueTask(_healthCallbacks.HealthTreatment(pmcData, body as HealthTreatmentRequestData, sessionID)); default: throw new Exception($"HealthItemEventRouter being used when it cant handle route {url}"); } diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/HideoutItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/HideoutItemEventRouter.cs index 04b89a72..a911e1a2 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/HideoutItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/HideoutItemEventRouter.cs @@ -44,43 +44,43 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition ]; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case HideoutEventActions.HIDEOUT_UPGRADE: - return _hideoutCallbacks.Upgrade(pmcData, body as HideoutUpgradeRequestData, sessionID, output); + return new ValueTask(_hideoutCallbacks.Upgrade(pmcData, body as HideoutUpgradeRequestData, sessionID, output)); case HideoutEventActions.HIDEOUT_UPGRADE_COMPLETE: - return _hideoutCallbacks.UpgradeComplete(pmcData, body as HideoutUpgradeCompleteRequestData, sessionID, output); + return new ValueTask(_hideoutCallbacks.UpgradeComplete(pmcData, body as HideoutUpgradeCompleteRequestData, sessionID, output)); case HideoutEventActions.HIDEOUT_PUT_ITEMS_IN_AREA_SLOTS: - return _hideoutCallbacks.PutItemsInAreaSlots(pmcData, body as HideoutPutItemInRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.PutItemsInAreaSlots(pmcData, body as HideoutPutItemInRequestData, sessionID)); case HideoutEventActions.HIDEOUT_TAKE_ITEMS_FROM_AREA_SLOTS: - return _hideoutCallbacks.TakeItemsFromAreaSlots(pmcData, body as HideoutTakeItemOutRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.TakeItemsFromAreaSlots(pmcData, body as HideoutTakeItemOutRequestData, sessionID)); case HideoutEventActions.HIDEOUT_TOGGLE_AREA: - return _hideoutCallbacks.ToggleArea(pmcData, body as HideoutToggleAreaRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.ToggleArea(pmcData, body as HideoutToggleAreaRequestData, sessionID)); case HideoutEventActions.HIDEOUT_SINGLE_PRODUCTION_START: - return _hideoutCallbacks.SingleProductionStart(pmcData, body as HideoutSingleProductionStartRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.SingleProductionStart(pmcData, body as HideoutSingleProductionStartRequestData, sessionID)); case HideoutEventActions.HIDEOUT_SCAV_CASE_PRODUCTION_START: - return _hideoutCallbacks.ScavCaseProductionStart(pmcData, body as HideoutScavCaseStartRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.ScavCaseProductionStart(pmcData, body as HideoutScavCaseStartRequestData, sessionID)); case HideoutEventActions.HIDEOUT_CONTINUOUS_PRODUCTION_START: - return _hideoutCallbacks.ContinuousProductionStart(pmcData, body as HideoutContinuousProductionStartRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.ContinuousProductionStart(pmcData, body as HideoutContinuousProductionStartRequestData, sessionID)); case HideoutEventActions.HIDEOUT_TAKE_PRODUCTION: - return _hideoutCallbacks.TakeProduction(pmcData, body as HideoutTakeProductionRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.TakeProduction(pmcData, body as HideoutTakeProductionRequestData, sessionID)); case HideoutEventActions.HIDEOUT_RECORD_SHOOTING_RANGE_POINTS: - return _hideoutCallbacks.RecordShootingRangePoints(pmcData, body as RecordShootingRangePoints, sessionID, output); + return new ValueTask(_hideoutCallbacks.RecordShootingRangePoints(pmcData, body as RecordShootingRangePoints, sessionID, output)); case HideoutEventActions.HIDEOUT_IMPROVE_AREA: - return _hideoutCallbacks.ImproveArea(pmcData, body as HideoutImproveAreaRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.ImproveArea(pmcData, body as HideoutImproveAreaRequestData, sessionID)); case HideoutEventActions.HIDEOUT_CANCEL_PRODUCTION_COMMAND: - return _hideoutCallbacks.CancelProduction(pmcData, body as HideoutCancelProductionRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.CancelProduction(pmcData, body as HideoutCancelProductionRequestData, sessionID)); case HideoutEventActions.HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START: - return _hideoutCallbacks.CicleOfCultistProductionStart(pmcData, body as HideoutCircleOfCultistProductionStartRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.CicleOfCultistProductionStart(pmcData, body as HideoutCircleOfCultistProductionStartRequestData, sessionID)); case HideoutEventActions.HIDEOUT_DELETE_PRODUCTION_COMMAND: - return _hideoutCallbacks.HideoutDeleteProductionCommand(pmcData, body as HideoutDeleteProductionRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.HideoutDeleteProductionCommand(pmcData, body as HideoutDeleteProductionRequestData, sessionID)); case HideoutEventActions.HIDEOUT_CUSTOMIZATION_APPLY_COMMAND: - return _hideoutCallbacks.HideoutCustomizationApplyCommand(pmcData, body as HideoutCustomizationApplyRequestData, sessionID); + return new ValueTask(_hideoutCallbacks.HideoutCustomizationApplyCommand(pmcData, body as HideoutCustomizationApplyRequestData, sessionID)); case HideoutEventActions.HIDEOUT_CUSTOMIZATION_SET_MANNEQUIN_POSE: - return _hideoutCallbacks.HideoutCustomizationSetMannequinPose(pmcData, body as HideoutCustomizationSetMannequinPoseRequest, sessionID); + return new ValueTask(_hideoutCallbacks.HideoutCustomizationSetMannequinPose(pmcData, body as HideoutCustomizationSetMannequinPoseRequest, sessionID)); default: throw new Exception($"HideoutItemEventRouter being used when it cant handle route {url}"); } diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/InsuranceItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/InsuranceItemEventRouter.cs index 0d7def37..b2c37e33 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/InsuranceItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/InsuranceItemEventRouter.cs @@ -30,13 +30,13 @@ public class InsuranceItemEventRouter : ItemEventRouterDefinition }; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case ItemEventActions.INSURE: - return _insuranceCallbacks.Insure(pmcData, body as InsureRequestData, sessionID); + return new ValueTask(_insuranceCallbacks.Insure(pmcData, body as InsureRequestData, sessionID)); default: throw new Exception($"InsuranceItemEventRouter being used when it cant handle route {url}"); } diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/InventoryItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/InventoryItemEventRouter.cs index 17a0962c..9bda1e24 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/InventoryItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/InventoryItemEventRouter.cs @@ -57,57 +57,57 @@ public class InventoryItemEventRouter : ItemEventRouterDefinition }; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case ItemEventActions.MOVE: - return _inventoryCallbacks.MoveItem(pmcData, body as InventoryMoveRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.MoveItem(pmcData, body as InventoryMoveRequestData, sessionID, output)); case ItemEventActions.REMOVE: - return _inventoryCallbacks.RemoveItem(pmcData, body as InventoryRemoveRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.RemoveItem(pmcData, body as InventoryRemoveRequestData, sessionID, output)); case ItemEventActions.SPLIT: - return _inventoryCallbacks.SplitItem(pmcData, body as InventorySplitRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.SplitItem(pmcData, body as InventorySplitRequestData, sessionID, output)); case ItemEventActions.MERGE: - return _inventoryCallbacks.MergeItem(pmcData, body as InventoryMergeRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.MergeItem(pmcData, body as InventoryMergeRequestData, sessionID, output)); case ItemEventActions.TRANSFER: - return _inventoryCallbacks.TransferItem(pmcData, body as InventoryTransferRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.TransferItem(pmcData, body as InventoryTransferRequestData, sessionID, output)); case ItemEventActions.SWAP: - return _inventoryCallbacks.SwapItem(pmcData, body as InventorySwapRequestData, sessionID); + return new ValueTask(_inventoryCallbacks.SwapItem(pmcData, body as InventorySwapRequestData, sessionID)); case ItemEventActions.FOLD: - return _inventoryCallbacks.FoldItem(pmcData, body as InventoryFoldRequestData, sessionID); + return new ValueTask(_inventoryCallbacks.FoldItem(pmcData, body as InventoryFoldRequestData, sessionID)); case ItemEventActions.TOGGLE: - return _inventoryCallbacks.ToggleItem(pmcData, body as InventoryToggleRequestData, sessionID); + return new ValueTask(_inventoryCallbacks.ToggleItem(pmcData, body as InventoryToggleRequestData, sessionID)); case ItemEventActions.TAG: - return _inventoryCallbacks.TagItem(pmcData, body as InventoryTagRequestData, sessionID); + return new ValueTask(_inventoryCallbacks.TagItem(pmcData, body as InventoryTagRequestData, sessionID)); case ItemEventActions.BIND: - return _inventoryCallbacks.BindItem(pmcData, body as InventoryBindRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.BindItem(pmcData, body as InventoryBindRequestData, sessionID, output)); case ItemEventActions.UNBIND: - return _inventoryCallbacks.UnBindItem(pmcData, body as InventoryBindRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.UnBindItem(pmcData, body as InventoryBindRequestData, sessionID, output)); case ItemEventActions.EXAMINE: - return _inventoryCallbacks.ExamineItem(pmcData, body as InventoryExamineRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.ExamineItem(pmcData, body as InventoryExamineRequestData, sessionID, output)); case ItemEventActions.READ_ENCYCLOPEDIA: - return _inventoryCallbacks.ReadEncyclopedia(pmcData, body as InventoryReadEncyclopediaRequestData, sessionID); + return new ValueTask(_inventoryCallbacks.ReadEncyclopedia(pmcData, body as InventoryReadEncyclopediaRequestData, sessionID)); case ItemEventActions.APPLY_INVENTORY_CHANGES: - return _inventoryCallbacks.SortInventory(pmcData, body as InventorySortRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.SortInventory(pmcData, body as InventorySortRequestData, sessionID, output)); case ItemEventActions.CREATE_MAP_MARKER: - return _inventoryCallbacks.CreateMapMarker(pmcData, body as InventoryCreateMarkerRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.CreateMapMarker(pmcData, body as InventoryCreateMarkerRequestData, sessionID, output)); case ItemEventActions.DELETE_MAP_MARKER: - return _inventoryCallbacks.DeleteMapMarker(pmcData, body as InventoryDeleteMarkerRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.DeleteMapMarker(pmcData, body as InventoryDeleteMarkerRequestData, sessionID, output)); case ItemEventActions.EDIT_MAP_MARKER: - return _inventoryCallbacks.EditMapMarker(pmcData, body as InventoryEditMarkerRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.EditMapMarker(pmcData, body as InventoryEditMarkerRequestData, sessionID, output)); case ItemEventActions.OPEN_RANDOM_LOOT_CONTAINER: - return _inventoryCallbacks.OpenRandomLootContainer(pmcData, body as OpenRandomLootContainerRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.OpenRandomLootContainer(pmcData, body as OpenRandomLootContainerRequestData, sessionID, output)); case ItemEventActions.HIDEOUT_QTE_EVENT: - return _hideoutCallbacks.HandleQTEEvent(pmcData, body as HandleQTEEventRequestData, sessionID, output); + return new ValueTask(_hideoutCallbacks.HandleQTEEvent(pmcData, body as HandleQTEEventRequestData, sessionID, output)); case ItemEventActions.REDEEM_PROFILE_REWARD: - return _inventoryCallbacks.RedeemProfileReward(pmcData, body as RedeemProfileRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.RedeemProfileReward(pmcData, body as RedeemProfileRequestData, sessionID, output)); case ItemEventActions.SET_FAVORITE_ITEMS: - return _inventoryCallbacks.SetFavoriteItem(pmcData, body as SetFavoriteItems, sessionID, output); + return new ValueTask(_inventoryCallbacks.SetFavoriteItem(pmcData, body as SetFavoriteItems, sessionID, output)); case ItemEventActions.QUEST_FAIL: - return _inventoryCallbacks.FailQuest(pmcData, body as FailQuestRequestData, sessionID, output); + return new ValueTask(_inventoryCallbacks.FailQuest(pmcData, body as FailQuestRequestData, sessionID, output)); case ItemEventActions.PIN_LOCK: - return _inventoryCallbacks.PinOrLock(pmcData, body as PinOrLockItemRequest, sessionID, output); + return new ValueTask(_inventoryCallbacks.PinOrLock(pmcData, body as PinOrLockItemRequest, sessionID, output)); default: throw new Exception($"InventoryItemEventRouter being used when it cant handle route {url}"); } diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/NoteItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/NoteItemEventRouter.cs index bb31604e..fd5c0b83 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/NoteItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/NoteItemEventRouter.cs @@ -32,17 +32,17 @@ public class NoteItemEventRouter : ItemEventRouterDefinition }; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case ItemEventActions.ADD_NOTE: - return _noteCallbacks.AddNote(pmcData, body as NoteActionRequest, sessionID); + return new ValueTask(_noteCallbacks.AddNote(pmcData, body as NoteActionRequest, sessionID)); case ItemEventActions.EDIT_NOTE: - return _noteCallbacks.EditNote(pmcData, body as NoteActionRequest, sessionID); + return new ValueTask(_noteCallbacks.EditNote(pmcData, body as NoteActionRequest, sessionID)); case ItemEventActions.DELETE_NOTE: - return _noteCallbacks.DeleteNote(pmcData, body as NoteActionRequest, sessionID); + return new ValueTask(_noteCallbacks.DeleteNote(pmcData, body as NoteActionRequest, sessionID)); default: throw new Exception($"NoteItemEventRouter being used when it cant handle route {url}"); } diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/QuestItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/QuestItemEventRouter.cs index a126c4d2..80d87c38 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/QuestItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/QuestItemEventRouter.cs @@ -33,19 +33,19 @@ public class QuestItemEventRouter : ItemEventRouterDefinition }; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case ItemEventActions.QUEST_ACCEPT: - return _questCallbacks.AcceptQuest(pmcData, body as AcceptQuestRequestData, sessionID); + return new ValueTask(_questCallbacks.AcceptQuest(pmcData, body as AcceptQuestRequestData, sessionID)); case ItemEventActions.QUEST_COMPLETE: - return _questCallbacks.CompleteQuest(pmcData, body as CompleteQuestRequestData, sessionID); + return new ValueTask(_questCallbacks.CompleteQuest(pmcData, body as CompleteQuestRequestData, sessionID)); case ItemEventActions.QUEST_HANDOVER: - return _questCallbacks.HandoverQuest(pmcData, body as HandoverQuestRequestData, sessionID); + return new ValueTask(_questCallbacks.HandoverQuest(pmcData, body as HandoverQuestRequestData, sessionID)); case ItemEventActions.REPEATABLE_QUEST_CHANGE: - return _questCallbacks.ChangeRepeatableQuest(pmcData, body as RepeatableQuestChangeRequest, sessionID); + return new ValueTask(_questCallbacks.ChangeRepeatableQuest(pmcData, body as RepeatableQuestChangeRequest, sessionID)); default: throw new Exception($"QuestItemEventRouter being used when it cant handle route {url}"); } diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/RagfairItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/RagfairItemEventRouter.cs index cf282b55..c18804b4 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/RagfairItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/RagfairItemEventRouter.cs @@ -32,17 +32,17 @@ public class RagfairItemEventRouter : ItemEventRouterDefinition }; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case ItemEventActions.RAGFAIR_ADD_OFFER: - return _ragfairCallbacks.AddOffer(pmcData, body as AddOfferRequestData, sessionID); + return new ValueTask(_ragfairCallbacks.AddOffer(pmcData, body as AddOfferRequestData, sessionID)); case ItemEventActions.RAGFAIR_REMOVE_OFFER: - return _ragfairCallbacks.RemoveOffer(pmcData, body as RemoveOfferRequestData, sessionID); + return new ValueTask(_ragfairCallbacks.RemoveOffer(pmcData, body as RemoveOfferRequestData, sessionID)); case ItemEventActions.RAGFAIR_RENEW_OFFER: - return _ragfairCallbacks.ExtendOffer(pmcData, body as ExtendOfferRequestData, sessionID); + return new ValueTask(_ragfairCallbacks.ExtendOffer(pmcData, body as ExtendOfferRequestData, sessionID)); default: throw new Exception($"CustomizationItemEventRouter being used when it cant handle route {url}"); } diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/RepairItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/RepairItemEventRouter.cs index 6b79cc91..fe69279d 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/RepairItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/RepairItemEventRouter.cs @@ -31,15 +31,15 @@ public class RepairItemEventRouter : ItemEventRouterDefinition }; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case ItemEventActions.REPAIR: - return _repairCallbacks.Repair(pmcData, body as RepairActionDataRequest, sessionID); + return new ValueTask(_repairCallbacks.Repair(pmcData, body as RepairActionDataRequest, sessionID)); case ItemEventActions.TRADER_REPAIR: - return _repairCallbacks.TraderRepair(pmcData, body as TraderRepairActionDataRequest, sessionID); + return new ValueTask(_repairCallbacks.TraderRepair(pmcData, body as TraderRepairActionDataRequest, sessionID)); default: throw new Exception($"RepairItemEventRouter being used when it cant handle route {url}"); } diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/TradeItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/TradeItemEventRouter.cs index d46ec83d..82336ad5 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/TradeItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/TradeItemEventRouter.cs @@ -32,17 +32,17 @@ public class TradeItemEventRouter : ItemEventRouterDefinition }; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case ItemEventActions.TRADING_CONFIRM: - return _tradeCallbacks.ProcessTrade(pmcData, body as ProcessBaseTradeRequestData, sessionID); + return new ValueTask(_tradeCallbacks.ProcessTrade(pmcData, body as ProcessBaseTradeRequestData, sessionID)); case ItemEventActions.RAGFAIR_BUY_OFFER: - return _tradeCallbacks.ProcessRagfairTrade(pmcData, body as ProcessRagfairTradeRequestData, sessionID); + return new ValueTask(_tradeCallbacks.ProcessRagfairTrade(pmcData, body as ProcessRagfairTradeRequestData, sessionID)); case ItemEventActions.SELL_ALL_FROM_SAVAGE: - return _tradeCallbacks.SellAllFromSavage(pmcData, body as SellScavItemsToFenceRequestData, sessionID); + return new ValueTask(_tradeCallbacks.SellAllFromSavage(pmcData, body as SellScavItemsToFenceRequestData, sessionID)); default: throw new Exception($"TradeItemEventRouter being used when it cant handle route {url}"); } diff --git a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/WishlistItemEventRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/WishlistItemEventRouter.cs index c59a9d70..23e8f7fe 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/WishlistItemEventRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ItemEvents/WishlistItemEventRouter.cs @@ -32,17 +32,17 @@ public class WishlistItemEventRouter : ItemEventRouterDefinition }; } - public override ItemEventRouterResponse HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, + public override ValueTask HandleItemEvent(string url, PmcData pmcData, BaseInteractionRequestData body, string sessionID, ItemEventRouterResponse output) { switch (url) { case ItemEventActions.ADD_TO_WISHLIST: - return _wishlistCallbacks.AddToWishlist(pmcData, body as AddToWishlistRequest, sessionID); + return new ValueTask(_wishlistCallbacks.AddToWishlist(pmcData, body as AddToWishlistRequest, sessionID)); case ItemEventActions.REMOVE_FROM_WISHLIST: - return _wishlistCallbacks.RemoveFromWishlist(pmcData, body as RemoveFromWishlistRequest, sessionID); + return new ValueTask(_wishlistCallbacks.RemoveFromWishlist(pmcData, body as RemoveFromWishlistRequest, sessionID) ); case ItemEventActions.CHANGE_WISHLIST_ITEM_CATEGORY: - return _wishlistCallbacks.ChangeWishlistItemCategory(pmcData, body as ChangeWishlistItemCategoryRequest, sessionID); + return new ValueTask(_wishlistCallbacks.ChangeWishlistItemCategory(pmcData, body as ChangeWishlistItemCategoryRequest, sessionID)); default: throw new Exception($"CustomizationItemEventRouter being used when it cant handle route {url}"); }