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

feat: webui.defaultLanguage config (#3618)

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

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

代码差异

6 个文件 +25 -1
Modified config-vanilla.json +3 -0
@@ -28,6 +28,9 @@
28 28 "skipTutorial": false,
29 29 "fullyStockedVendors": false,
30 30 "skipClanKeyCrafting": false,
31 "webui": {
32 "defaultLanguage": "en"
33 },
31 34 "unfaithfulBugFixes": {
32 35 "ignore1999LastRegionPlayed": false,
33 36 "fixXtraCheeseTimer": false,
Modified src/routes/webui.ts +7 -0
@@ -3,6 +3,7 @@ import path from "path";
3 3 import fs from "fs/promises";
4 4 import { repoDir, rootDir } from "../helpers/pathHelper.ts";
5 5 import { args } from "../helpers/commandLineArguments.ts";
6 import { config } from "../services/configService.ts";
6 7
7 8 const baseDir = args.dev ? repoDir : rootDir;
8 9
@@ -64,6 +65,12 @@ webuiRouter.get("/favicon.ico", async (_req, res) => {
64 65 res.send(await fs.readFile(path.join(repoDir, "static/fixed_responses/favicon.ico")));
65 66 });
66 67
68 // Serve config
69 webuiRouter.get("/webui/config.js", (_req, res) => {
70 res.set("Content-Type", "text/javascript;charset=utf8");
71 res.send("webui_conf=" + JSON.stringify(config.webui ?? {}));
72 });
73
67 74 // Serve warframe-riven-info
68 75 webuiRouter.get("/webui/riven-tool/", async (_req, res) => {
69 76 res.set("Content-Type", "text/html;charset=utf8");
Modified src/services/configService.ts +3 -0
@@ -38,6 +38,9 @@ export interface IConfig {
38 38 skipTutorial?: boolean;
39 39 fullyStockedVendors?: boolean;
40 40 skipClanKeyCrafting?: boolean;
41 webui?: {
42 defaultLanguage?: string;
43 };
41 44 unfaithfulBugFixes?: {
42 45 ignore1999LastRegionPlayed?: boolean;
43 46 fixXtraCheeseTimer?: boolean;
Modified src/services/configWatcherService.ts +10 -0
@@ -101,6 +101,16 @@ export const validateConfig = (): void => {
101 101 }
102 102 }
103 103 }
104 if (config.webui?.defaultLanguage) {
105 if (
106 ["en", "de", "es", "fr", "it", "ja", "ko", "pl", "pt", "ru", "tr", "uk", "zh", "tc", "th"].indexOf(
107 config.webui.defaultLanguage
108 ) == -1
109 ) {
110 config.webui.defaultLanguage = "en";
111 modified = true;
112 }
113 }
104 114 if (
105 115 config.worldState?.galleonOfGhouls &&
106 116 config.worldState.galleonOfGhouls != 1 &&
Modified static/webui/index.html +1 -0
@@ -1711,6 +1711,7 @@
1711 1711 <script src="/webui/libs/whirlpool-js.min.js"></script>
1712 1712 <script src="/webui/libs/single.js"></script>
1713 1713 <script src="/webui/riven-tool/RivenParser.js"></script>
1714 <script src="/webui/config.js"></script>
1714 1715 <script src="/webui/script.js"></script>
1715 1716 <script src="/webui/libs/bootstrap.bundle.min.js"></script>
1716 1717 <script>
Modified static/webui/script.js +1 -1
@@ -285,7 +285,7 @@ function setActiveLanguage(lang) {
285 285 document.documentElement.appendChild(script);
286 286 });
287 287 }
288 setActiveLanguage(localStorage.getItem("lang") ?? "en");
288 setActiveLanguage(localStorage.getItem("lang") ?? webui_conf.defaultLanguage ?? en);
289 289
290 290 function setLanguage(lang) {
291 291 setActiveLanguage(lang);