From 12d09531b32e46de33b88127abf6a4762a9a8df2 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sat, 14 Jun 2025 12:58:26 -0700 Subject: [PATCH] feat: add dev.keepVendorsExpired config option (#2161) Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2161 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- config.json.example | 4 ++++ src/controllers/api/getVendorInfoController.ts | 9 +++++++++ src/services/configService.ts | 5 ++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/config.json.example b/config.json.example index b9ebaab0..bf6eae91 100644 --- a/config.json.example +++ b/config.json.example @@ -50,6 +50,7 @@ "noDojoResearchTime": false, "fastClanAscension": false, "spoofMasteryRank": -1, + "nightwaveStandingMultiplier": 1, "worldState": { "creditBoost": false, "affinityBoost": false, @@ -58,5 +59,8 @@ "eidolonOverride": "", "vallisOverride": "", "nightwaveOverride": "" + }, + "dev": { + "keepVendorsExpired": false } } diff --git a/src/controllers/api/getVendorInfoController.ts b/src/controllers/api/getVendorInfoController.ts index 5f9d3292..15ec9287 100644 --- a/src/controllers/api/getVendorInfoController.ts +++ b/src/controllers/api/getVendorInfoController.ts @@ -2,6 +2,7 @@ import { RequestHandler } from "express"; import { applyStandingToVendorManifest, getVendorManifestByTypeName } from "@/src/services/serversideVendorsService"; import { getInventory } from "@/src/services/inventoryService"; import { getAccountIdForRequest } from "@/src/services/loginService"; +import { config } from "@/src/services/configService"; export const getVendorInfoController: RequestHandler = async (req, res) => { let manifest = getVendorManifestByTypeName(req.query.vendor as string); @@ -14,6 +15,14 @@ export const getVendorInfoController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const inventory = await getInventory(accountId); manifest = applyStandingToVendorManifest(inventory, manifest); + if (config.dev?.keepVendorsExpired) { + manifest = { + VendorInfo: { + ...manifest.VendorInfo, + Expiry: { $date: { $numberLong: "0" } } + } + }; + } } res.json(manifest); diff --git a/src/services/configService.ts b/src/services/configService.ts index 1989330a..82cc4f31 100644 --- a/src/services/configService.ts +++ b/src/services/configService.ts @@ -56,6 +56,7 @@ interface IConfig { noDojoResearchTime?: boolean; fastClanAscension?: boolean; spoofMasteryRank?: number; + nightwaveStandingMultiplier?: number; worldState?: { creditBoost?: boolean; affinityBoost?: boolean; @@ -65,7 +66,9 @@ interface IConfig { vallisOverride?: string; nightwaveOverride?: string; }; - nightwaveStandingMultiplier?: number; + dev?: { + keepVendorsExpired?: boolean; + }; } export const configPath = path.join(repoDir, "config.json");