From 7c47c9f1e42cff84156faa92c1aab86e35a7c2e8 Mon Sep 17 00:00:00 2001 From: Sainan Date: Thu, 20 Jun 2024 13:29:48 +0200 Subject: [PATCH] fix: not being able to talk to Nakak in Cetus (#336) --- .../api/getVendorInfoController.ts | 7 + src/routes/api.ts | 2 + static/fixed_responses/getVendorInfo.json | 301 ++++++++++++++++++ 3 files changed, 310 insertions(+) create mode 100644 src/controllers/api/getVendorInfoController.ts create mode 100644 static/fixed_responses/getVendorInfo.json diff --git a/src/controllers/api/getVendorInfoController.ts b/src/controllers/api/getVendorInfoController.ts new file mode 100644 index 00000000..cd442318 --- /dev/null +++ b/src/controllers/api/getVendorInfoController.ts @@ -0,0 +1,7 @@ +import { RequestHandler } from "express"; +import getVendorInfoResponse from "@/static/fixed_responses/getVendorInfo.json"; + +export const getVendorInfoController: RequestHandler = (req, res) => { + console.assert(req.query.vendor == "/Lotus/Types/Game/VendorManifests/Ostron/MaskSalesmanManifest"); + res.json(getVendorInfoResponse); +}; diff --git a/src/routes/api.ts b/src/routes/api.ts index bf7440de..8bdddd78 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -21,6 +21,7 @@ import { getGuildLogController } from "../controllers/api/getGuildLogController" import { getIgnoredUsersController } from "@/src/controllers/api/getIgnoredUsersController"; import { getNewRewardSeedController } from "@/src/controllers/api/getNewRewardSeedController"; import { getShipController } from "@/src/controllers/api/getShipController"; +import { getVendorInfoController } from "@/src/controllers/api/getVendorInfoController"; import { guildTechController } from "../controllers/api/guildTechController"; import { hostSessionController } from "@/src/controllers/api/hostSessionController"; import { hubController } from "@/src/controllers/api/hubController"; @@ -77,6 +78,7 @@ apiRouter.get("/getGuildLog.php", getGuildLogController); apiRouter.get("/getIgnoredUsers.php", getIgnoredUsersController); apiRouter.get("/getNewRewardSeed.php", getNewRewardSeedController); apiRouter.get("/getShip.php", getShipController); +apiRouter.get("/getVendorInfo.php", getVendorInfoController); apiRouter.get("/hub", hubController); apiRouter.get("/hubInstances", hubInstancesController); apiRouter.get("/inbox.php", inboxController); diff --git a/static/fixed_responses/getVendorInfo.json b/static/fixed_responses/getVendorInfo.json new file mode 100644 index 00000000..85aa7eac --- /dev/null +++ b/static/fixed_responses/getVendorInfo.json @@ -0,0 +1,301 @@ +{ + "VendorInfo": { + "_id": { + "$oid": "598a090d9a4a313746fd1f24" + }, + "TypeName": "/Lotus/Types/Game/VendorManifests/Ostron/MaskSalesmanManifest", + "ItemManifest": [ + { + "StoreItem": "/Lotus/StoreItems/Upgrades/Skins/Ostron/RevenantMask", + "ItemPrices": [ + { + "ItemCount": 1, + "ItemType": "/Lotus/Types/Gameplay/Eidolon/Resources/CetusWispItem", + "ProductCategory": "MiscItems" + } + ], + "Bin": "BIN_0", + "QuantityMultiplier": 1, + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + }, + "AllowMultipurchase": true, + "Id": { + "$oid": "63ed01ef4c37f93d0b797674" + } + }, + { + "StoreItem": "/Lotus/StoreItems/Types/Items/ShipDecos/Plushies/PlushyThumper", + "ItemPrices": [ + { + "ItemCount": 2, + "ItemType": "/Lotus/Types/Gameplay/Eidolon/Resources/CetusWispItem", + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Items/Fish/Eidolon/FishParts/BothUncommonFishBPartItem", + "ItemCount": 10, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Gameplay/Eidolon/Resources/NistlebrushItem", + "ItemCount": 10, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Items/Gems/Eidolon/CommonOreAAlloyAItem", + "ItemCount": 32, + "ProductCategory": "MiscItems" + } + ], + "Bin": "BIN_0", + "QuantityMultiplier": 1, + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + }, + "AllowMultipurchase": true, + "Id": { + "$oid": "63ed01ef4c37f93d0b797675" + } + }, + { + "StoreItem": "/Lotus/StoreItems/Types/Items/ShipDecos/Plushies/PlushyThumperMedium", + "ItemPrices": [ + { + "ItemCount": 4, + "ItemType": "/Lotus/Types/Gameplay/Eidolon/Resources/CetusWispItem", + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Items/Gems/Eidolon/CommonGemBCutAItem", + "ItemCount": 24, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Items/Fish/Eidolon/FishParts/BothUncommonFishAPartItem", + "ItemCount": 18, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Items/Fish/Eidolon/FishParts/BothUncommonFishBPartItem", + "ItemCount": 27, + "ProductCategory": "MiscItems" + } + ], + "Bin": "BIN_1", + "QuantityMultiplier": 1, + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + }, + "AllowMultipurchase": true, + "Id": { + "$oid": "63ed01ef4c37f93d0b797676" + } + }, + { + "StoreItem": "/Lotus/StoreItems/Types/Items/ShipDecos/Plushies/PlushyThumperLarge", + "ItemPrices": [ + { + "ItemCount": 6, + "ItemType": "/Lotus/Types/Gameplay/Eidolon/Resources/CetusWispItem", + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Items/Gems/Eidolon/CommonGemACutAItem", + "ItemCount": 35, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Items/Fish/Eidolon/FishParts/BothCommonFishAPartItem", + "ItemCount": 95, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Gameplay/Eidolon/Resources/NistlebrushItem", + "ItemCount": 60, + "ProductCategory": "MiscItems" + } + ], + "Bin": "BIN_0", + "QuantityMultiplier": 1, + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + }, + "AllowMultipurchase": true, + "Id": { + "$oid": "63ed01ef4c37f93d0b797677" + } + }, + { + "StoreItem": "/Lotus/StoreItems/Types/Recipes/SynthicatorRecipes/FlareBlueBlueprint", + "ItemPrices": [ + { + "ItemType": "/Lotus/Types/Items/Fish/Eidolon/FishParts/BothUncommonFishBPartItem", + "ItemCount": 10, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Items/Fish/Eidolon/FishParts/DayCommonFishCPartItem", + "ItemCount": 10, + "ProductCategory": "MiscItems" + } + ], + "Bin": "BIN_0", + "QuantityMultiplier": 1, + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + }, + "AllowMultipurchase": true, + "Id": { + "$oid": "6651291214e90115b91b50a1" + } + }, + { + "StoreItem": "/Lotus/StoreItems/Types/Recipes/SynthicatorRecipes/FlareRedBlueprint", + "ItemPrices": [ + { + "ItemType": "/Lotus/Types/Items/Gems/Eidolon/CommonOreAAlloyAItem", + "ItemCount": 37, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Items/Fish/Eidolon/FishParts/BothUncommonFishAPartItem", + "ItemCount": 7, + "ProductCategory": "MiscItems" + } + ], + "Bin": "BIN_0", + "QuantityMultiplier": 1, + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + }, + "AllowMultipurchase": true, + "Id": { + "$oid": "6651291214e90115b91b50a2" + } + }, + { + "StoreItem": "/Lotus/StoreItems/Upgrades/Skins/Ostron/VoltMask", + "ItemPrices": [ + { + "ItemType": "/Lotus/Types/Items/Gems/Eidolon/CommonOreBAlloyBItem", + "ItemCount": 34, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Gameplay/Eidolon/Resources/GrokdrulItem", + "ItemCount": 17, + "ProductCategory": "MiscItems" + } + ], + "Bin": "BIN_0", + "QuantityMultiplier": 1, + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + }, + "AllowMultipurchase": true, + "Id": { + "$oid": "6651291214e90115b91b50a3" + } + }, + { + "StoreItem": "/Lotus/StoreItems/Upgrades/Skins/Ostron/MagMask", + "ItemPrices": [ + { + "ItemType": "/Lotus/Types/Items/Fish/Eidolon/FishParts/DayCommonFishBPartItem", + "ItemCount": 16, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Gameplay/Eidolon/Resources/ForestRodentPartItem", + "ItemCount": 5, + "ProductCategory": "MiscItems" + } + ], + "Bin": "BIN_0", + "QuantityMultiplier": 1, + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + }, + "AllowMultipurchase": true, + "Id": { + "$oid": "6651291214e90115b91b50a4" + } + }, + { + "StoreItem": "/Lotus/StoreItems/Upgrades/Skins/Ostron/ExcaliburMask", + "ItemPrices": [ + { + "ItemType": "/Lotus/Types/Gameplay/Eidolon/Resources/BirdOfPreyPartItem", + "ItemCount": 5, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Gameplay/Eidolon/Resources/GrokdrulItem", + "ItemCount": 20, + "ProductCategory": "MiscItems" + } + ], + "Bin": "BIN_0", + "QuantityMultiplier": 1, + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + }, + "AllowMultipurchase": true, + "Id": { + "$oid": "6651291214e90115b91b50a5" + } + }, + { + "StoreItem": "/Lotus/StoreItems/Upgrades/Skins/Ostron/GrineerMask", + "ItemPrices": [ + { + "ItemType": "/Lotus/Types/Items/Fish/Eidolon/FishParts/DayCommonFishBPartItem", + "ItemCount": 20, + "ProductCategory": "MiscItems" + }, + { + "ItemType": "/Lotus/Types/Items/Gems/Eidolon/CommonOreAAlloyAItem", + "ItemCount": 31, + "ProductCategory": "MiscItems" + } + ], + "Bin": "BIN_1", + "QuantityMultiplier": 1, + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + }, + "AllowMultipurchase": true, + "Id": { + "$oid": "6651291214e90115b91b50a6" + } + } + ], + "PropertyTextHash": "6AACA376DA34B35B5C16F1B40DBC017D", + "Expiry": { + "$date": { + "$numberLong": "9999999000000" + } + } + } +}