XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

chore: automatically remove deleted options from config.json (#2689)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2689 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

895e76b4
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

2 个文件 +50 -2
Modified src/services/configService.ts +36 -1
@@ -4,7 +4,7 @@ import { repoDir } from "@/src/helpers/pathHelper";
4 4 import { args } from "@/src/helpers/commandLineArguments";
5 5 import { Inbox } from "@/src/models/inboxModel";
6 6
7 export interface IConfig {
7 export interface IConfig extends IConfigRemovedOptions {
8 8 mongodbUrl: string;
9 9 logger: {
10 10 files: boolean;
@@ -92,6 +92,41 @@ export interface IConfig {
92 92 };
93 93 }
94 94
95 export const configRemovedOptionsKeys = [
96 "infiniteCredits",
97 "infinitePlatinum",
98 "infiniteEndo",
99 "infiniteRegalAya",
100 "infiniteHelminthMaterials",
101 "claimingBlueprintRefundsIngredients",
102 "dontSubtractPurchaseCreditCost",
103 "dontSubtractPurchasePlatinumCost",
104 "dontSubtractPurchaseItemCost",
105 "dontSubtractPurchaseStandingCost",
106 "dontSubtractVoidTraces",
107 "dontSubtractConsumables",
108 "universalPolarityEverywhere",
109 "unlockDoubleCapacityPotatoesEverywhere",
110 "unlockExilusEverywhere",
111 "unlockArcanesEverywhere",
112 "noDailyStandingLimits",
113 "noDailyFocusLimit",
114 "noArgonCrystalDecay",
115 "noMasteryRankUpCooldown",
116 "noVendorPurchaseLimits",
117 "noDeathMarks",
118 "noKimCooldowns",
119 "syndicateMissionsRepeatable",
120 "instantFinishRivenChallenge",
121 "instantResourceExtractorDrones",
122 "noResourceExtractorDronesDamage",
123 "skipClanKeyCrafting"
124 ] as const;
125
126 type IConfigRemovedOptions = {
127 [K in (typeof configRemovedOptionsKeys)[number]]?: boolean;
128 };
129
95 130 export const configPath = path.join(repoDir, args.configPath ?? "config.json");
96 131
97 132 export const config: IConfig = {
Modified src/services/configWatcherService.ts +14 -1
@@ -1,6 +1,12 @@
1 1 import chokidar from "chokidar";
2 2 import { logger } from "@/src/utils/logger";
3 import { config, configPath, loadConfig, syncConfigWithDatabase } from "@/src/services/configService";
3 import {
4 config,
5 configPath,
6 configRemovedOptionsKeys,
7 loadConfig,
8 syncConfigWithDatabase
9 } from "@/src/services/configService";
4 10 import { saveConfig, shouldReloadConfig } from "@/src/services/configWriterService";
5 11 import { getWebPorts, startWebServer, stopWebServer } from "@/src/services/webService";
6 12 import { sendWsBroadcast } from "@/src/services/wsService";
@@ -34,6 +40,13 @@ chokidar.watch(configPath).on("change", () => {
34 40
35 41 export const validateConfig = (): void => {
36 42 let modified = false;
43 for (const key of configRemovedOptionsKeys) {
44 if (config[key] !== undefined) {
45 logger.debug(`Spotted removed option ${key} with value ${config[key]} in config.json.`);
46 delete config[key];
47 modified = true;
48 }
49 }
37 50 if (config.administratorNames) {
38 51 if (!Array.isArray(config.administratorNames)) {
39 52 config.administratorNames = [config.administratorNames];