From 87cc2594c81eda976afcb3e0e42ba458d144a522 Mon Sep 17 00:00:00 2001 From: Sainan Date: Tue, 18 Feb 2025 13:48:21 -0800 Subject: [PATCH] fix: add missing quest keys at updateQuestKey (#958) it's possible the quest key was not in already in the inventory but the quest was still available due to unlockAllQuests Closes #957 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/958 --- src/services/questService.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/services/questService.ts b/src/services/questService.ts index e53126c5..ae7c8133 100644 --- a/src/services/questService.ts +++ b/src/services/questService.ts @@ -3,6 +3,7 @@ import { TInventoryDatabaseDocument } from "@/src/models/inventoryModels/invento import { IInventoryDatabase, IQuestKeyDatabase, IQuestStage } from "@/src/types/inventoryTypes/inventoryTypes"; import { logger } from "@/src/utils/logger"; import { HydratedDocument } from "mongoose"; +import { config } from "@/src/services/configService"; export interface IUpdateQuestRequest { QuestKeys: Omit[]; @@ -22,10 +23,10 @@ export const updateQuestKey = ( throw new Error("more than 1 quest key not supported"); } - const questKeyIndex = inventory.QuestKeys.findIndex(questKey => questKey.ItemType === questKeyUpdate[0].ItemType); - + let questKeyIndex = inventory.QuestKeys.findIndex(questKey => questKey.ItemType === questKeyUpdate[0].ItemType); if (questKeyIndex === -1) { - throw new Error(`quest key ${questKeyUpdate[0].ItemType} not found`); + if (!config.unlockAllQuests) throw new Error(`quest key ${questKeyUpdate[0].ItemType} not found`); + questKeyIndex = inventory.QuestKeys.push({ ItemType: questKeyUpdate[0].ItemType }) - 1; } inventory.QuestKeys[questKeyIndex] = questKeyUpdate[0];