From 643eaf35c54d3634fa83f55018243763240d0c71 Mon Sep 17 00:00:00 2001 From: Master Date: Tue, 25 Jun 2024 13:20:20 +0800 Subject: [PATCH] fix giveKeyChainTriggeredItems --- .../giveKeyChainTriggeredItemsController.ts | 4 +-- src/services/questService.ts | 27 +++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/controllers/api/giveKeyChainTriggeredItemsController.ts b/src/controllers/api/giveKeyChainTriggeredItemsController.ts index 80eca74a..fc9fb071 100644 --- a/src/controllers/api/giveKeyChainTriggeredItemsController.ts +++ b/src/controllers/api/giveKeyChainTriggeredItemsController.ts @@ -9,8 +9,8 @@ const giveKeyChainTriggeredItemsController: RequestHandler = async (req, res) => const accountId = await getAccountIdForRequest(req); const payload = getJSONfromString(req.body as string) as IGiveKeyChainTriggeredItemsRequest; const result = await giveKeyChainTriggeredItems(accountId, payload.KeyChain, payload.ChainStage); - if (result != null) res.json(result); - else res.status(200).end(); + if (result) res.json(result); + else res.json([]); }; export { giveKeyChainTriggeredItemsController }; diff --git a/src/services/questService.ts b/src/services/questService.ts index 3adad436..1f0efd0d 100644 --- a/src/services/questService.ts +++ b/src/services/questService.ts @@ -2,7 +2,8 @@ import { IInventoryDatabaseDocument, IQuestKeyDatabase } from "@/src/types/inven import { IUpdateQuestRequest, IUpdateQuestResponse } from "@/src/types/questTypes"; import { addItem, getInventory } from "@/src/services/inventoryService"; import { logger } from "@/src/utils/logger"; -import { ExportKeys } from "warframe-public-export-plus"; +import { ExportKeys, ExportRecipes } from "warframe-public-export-plus"; +import { ItemType } from "../helpers/customHelpers/addItemHelpers"; export const setActiveQuest = async (accountId: string, quest: string) => { const inventory = await getInventory(accountId); @@ -79,14 +80,24 @@ export const giveKeyChainTriggeredItems = async (accountId: string, keyChain: st const quest = ExportKeys[keyChain]; if (quest.chainStages) { - for (const chainStage of quest.chainStages) { - if (chainStage.itemsToGiveWhenTriggered.length > 0) { - let itemType = chainStage.itemsToGiveWhenTriggered[0]; - if (itemType.indexOf("") > 0) { - itemType = itemType.replace("/Lotus/StoreItems/", "/Lotus/"); - } - await addItem(accountId, itemType, 1); + const stage = quest.chainStages[chainStage]; + if (stage.itemsToGiveWhenTriggered.length > 0) { + let itemType = stage.itemsToGiveWhenTriggered[0]; + if (itemType.indexOf("") > 0) { + itemType = itemType.replace("/Lotus/StoreItems/", "/Lotus/"); } + await addItem(accountId, itemType, 1); + + if (itemType in ExportRecipes) { + return { + Recipes: [{ + ItemType: itemType, + ItemCount: 1 + }] + }; + } + + // more } }