From 30061fb0e3e3896da986004e3bb56014fb597d77 Mon Sep 17 00:00:00 2001 From: Ordis <134585663+OrdisPrime@users.noreply.github.com> Date: Sun, 9 Feb 2025 14:37:25 -0800 Subject: [PATCH] fix: don't abort quest update when quest completion rewards are missing. (#937) Temporary fix until quest completion items are added. This is wip. Your account has to own the quest keys for the quest system to work. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/937 Co-authored-by: Ordis <134585663+OrdisPrime@users.noreply.github.com> Co-committed-by: Ordis <134585663+OrdisPrime@users.noreply.github.com> --- src/controllers/api/updateQuestController.ts | 7 ++++--- src/services/itemDataService.ts | 10 ++++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/controllers/api/updateQuestController.ts b/src/controllers/api/updateQuestController.ts index d5d4a5a7..3a91ada0 100644 --- a/src/controllers/api/updateQuestController.ts +++ b/src/controllers/api/updateQuestController.ts @@ -30,10 +30,11 @@ export const updateQuestController: RequestHandler = async (req, res) => { const questCompletionItems = getQuestCompletionItems(questKeyName); logger.debug(`quest completion items`, questCompletionItems); - const inventoryChanges = await addItems(inventory, questCompletionItems); + if (questCompletionItems) { + const inventoryChanges = await addItems(inventory, questCompletionItems); + updateQuestResponse.InventoryChanges = inventoryChanges; + } inventory.ActiveQuest = ""; - - updateQuestResponse.InventoryChanges = inventoryChanges; } //TODO: might need to parse the custom data and add the associated items to inventory diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts index be4291d6..d68ef666 100644 --- a/src/services/itemDataService.ts +++ b/src/services/itemDataService.ts @@ -189,11 +189,13 @@ export const getNode = (nodeName: string): IRegion => { }; export const getQuestCompletionItems = (questKey: string) => { - const items = (questCompletionItems as unknown as Record)[questKey]; - if (!items) { - throw new Error(`Quest ${questKey} not found in questCompletionItems`); - } + const items = (questCompletionItems as unknown as Record | undefined)?.[questKey]; + if (!items) { + logger.error( + `Quest ${questKey} not found in questCompletionItems, quest completion items have not been given. This is a temporary solution` + ); + } return items; };