From ec4af075b5bd26577958ce4e32e89114fc60d18f Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sun, 4 May 2025 17:30:48 -0700 Subject: [PATCH] fix: login failure on U21 (#1974) Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1974 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- src/controllers/api/questControlController.ts | 25 +++++++++++++++++++ src/routes/api.ts | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 src/controllers/api/questControlController.ts diff --git a/src/controllers/api/questControlController.ts b/src/controllers/api/questControlController.ts new file mode 100644 index 00000000..0a6e0781 --- /dev/null +++ b/src/controllers/api/questControlController.ts @@ -0,0 +1,25 @@ +import { getInventory } from "@/src/services/inventoryService"; +import { getAccountIdForRequest } from "@/src/services/loginService"; +import { RequestHandler } from "express"; + +// Basic shim handling action=sync to login on U21 +export const questControlController: RequestHandler = async (req, res) => { + const accountId = await getAccountIdForRequest(req); + const inventory = await getInventory(accountId); + const quests: IQuestState[] = []; + for (const quest of inventory.QuestKeys) { + quests.push({ + quest: quest.ItemType, + state: 3 // COMPLETE + }); + } + res.json({ + QuestState: quests + }); +}; + +interface IQuestState { + quest: string; + state: number; + task?: string; +} diff --git a/src/routes/api.ts b/src/routes/api.ts index 9f5fca4b..aeecf060 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -97,6 +97,7 @@ import { playerSkillsController } from "@/src/controllers/api/playerSkillsContro import { postGuildAdvertisementController } from "@/src/controllers/api/postGuildAdvertisementController"; import { projectionManagerController } from "@/src/controllers/api/projectionManagerController"; import { purchaseController } from "@/src/controllers/api/purchaseController"; +import { questControlController } from "@/src/controllers/api/questControlController"; import { queueDojoComponentDestructionController } from "@/src/controllers/api/queueDojoComponentDestructionController"; import { redeemPromoCodeController } from "@/src/controllers/api/redeemPromoCodeController"; import { releasePetController } from "@/src/controllers/api/releasePetController"; @@ -192,6 +193,7 @@ apiRouter.get("/marketRecommendations.php", marketRecommendationsController); apiRouter.get("/marketSearchRecommendations.php", marketRecommendationsController); apiRouter.get("/modularWeaponSale.php", modularWeaponSaleController); apiRouter.get("/playedParkourTutorial.php", playedParkourTutorialController); +apiRouter.get("/questControl.php", questControlController); apiRouter.get("/queueDojoComponentDestruction.php", queueDojoComponentDestructionController); apiRouter.get("/removeFromAlliance.php", removeFromAllianceController); apiRouter.get("/setActiveQuest.php", setActiveQuestController);