From ea9333279b98c4f831222673d7db9eb08216f88d Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Tue, 1 Apr 2025 15:48:40 -0700 Subject: [PATCH] fix: handle CurrentLoadOutIds missing LoadOuts in missionInventoryUpdate (#1421) Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1421 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- src/services/missionInventoryUpdateService.ts | 22 ++++++++++--------- src/types/requestTypes.ts | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index 8fbfd41e..21f1040c 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -414,17 +414,19 @@ export const addMissionInventoryUpdates = async ( break; } case "CurrentLoadOutIds": { - const loadout = await Loadout.findOne({ loadoutOwnerId: inventory.accountOwnerId }); - if (loadout) { - for (const [loadoutId, loadoutConfig] of Object.entries(value.LoadOuts.NORMAL)) { - const { ItemId, ...loadoutConfigItemIdRemoved } = loadoutConfig; - const loadoutConfigDatabase: ILoadoutConfigDatabase = { - _id: new Types.ObjectId(ItemId.$oid), - ...loadoutConfigItemIdRemoved - }; - loadout.NORMAL.id(loadoutId)!.overwrite(loadoutConfigDatabase); + if (value.LoadOuts) { + const loadout = await Loadout.findOne({ loadoutOwnerId: inventory.accountOwnerId }); + if (loadout) { + for (const [loadoutId, loadoutConfig] of Object.entries(value.LoadOuts.NORMAL)) { + const { ItemId, ...loadoutConfigItemIdRemoved } = loadoutConfig; + const loadoutConfigDatabase: ILoadoutConfigDatabase = { + _id: new Types.ObjectId(ItemId.$oid), + ...loadoutConfigItemIdRemoved + }; + loadout.NORMAL.id(loadoutId)!.overwrite(loadoutConfigDatabase); + } + await loadout.save(); } - await loadout.save(); } break; } diff --git a/src/types/requestTypes.ts b/src/types/requestTypes.ts index 299760df..bba719b1 100644 --- a/src/types/requestTypes.ts +++ b/src/types/requestTypes.ts @@ -114,7 +114,7 @@ export type IMissionInventoryUpdateRequest = { UnlockWeapons?: boolean; // sent when recovered weapons from zanuka capture IncHarvester?: boolean; // sent when recovered weapons from zanuka capture CurrentLoadOutIds?: { - LoadOuts: ILoadOutPresets; // sent when recovered weapons from zanuka capture + LoadOuts?: ILoadOutPresets; // sent when recovered weapons from zanuka capture }; } & { [K in TEquipmentKey]?: IEquipmentClient[];