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.enabled config (#3629)

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

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

代码差异

3 个文件 +25 -35
Modified config-vanilla.json +1 -0
@@ -29,6 +29,7 @@
29 29 "fullyStockedVendors": false,
30 30 "skipClanKeyCrafting": false,
31 31 "webui": {
32 "enabled": true,
32 33 "defaultLanguage": "en"
33 34 },
34 35 "unfaithfulBugFixes": {
Modified src/routes/webui.ts +23 -35
@@ -1,4 +1,4 @@
1 import express from "express";
1 import express, { type RequestHandler } from "express";
2 2 import path from "path";
3 3 import fs from "fs/promises";
4 4 import { repoDir, rootDir } from "../helpers/pathHelper.ts";
@@ -11,50 +11,38 @@ const webuiRouter = express.Router();
11 11
12 12 // Redirect / to /webui/
13 13 webuiRouter.get("/", (_req, res) => {
14 res.redirect("/webui/");
14 if (config.webui?.enabled ?? true) {
15 res.redirect("/webui/");
16 } else {
17 res.sendStatus(404);
18 }
15 19 });
16 20
17 21 // Redirect /webui to /webui/
18 22 webuiRouter.use("/webui", (req, res, next) => {
19 if (req.originalUrl === "/") {
23 if (req.originalUrl === "/" && (config.webui?.enabled ?? true)) {
20 24 return res.redirect("/webui/");
21 25 }
22 26 next();
23 27 });
24 28
25 29 // Serve virtual routes
26 webuiRouter.get("/webui/inventory", async (_req, res) => {
27 res.set("Content-Type", "text/html;charset=utf8");
28 res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
29 });
30 webuiRouter.get("/webui/detailedView", async (_req, res) => {
31 res.set("Content-Type", "text/html;charset=utf8");
32 res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
33 });
34 webuiRouter.get("/webui/mods", async (_req, res) => {
35 res.set("Content-Type", "text/html;charset=utf8");
36 res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
37 });
38 webuiRouter.get("/webui/settings", async (_req, res) => {
39 res.set("Content-Type", "text/html;charset=utf8");
40 res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
41 });
42 webuiRouter.get("/webui/quests", async (_req, res) => {
43 res.set("Content-Type", "text/html;charset=utf8");
44 res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
45 });
46 webuiRouter.get("/webui/cheats", async (_req, res) => {
47 res.set("Content-Type", "text/html;charset=utf8");
48 res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
49 });
50 webuiRouter.get("/webui/import", async (_req, res) => {
51 res.set("Content-Type", "text/html;charset=utf8");
52 res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
53 });
54 webuiRouter.get("/webui/guildView", async (_req, res) => {
55 res.set("Content-Type", "text/html;charset=utf8");
56 res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
57 });
30 const virtualRouteController: RequestHandler = async (_req, res) => {
31 if (config.webui?.enabled ?? true) {
32 res.set("Content-Type", "text/html;charset=utf8");
33 res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
34 } else {
35 res.sendStatus(404);
36 }
37 };
38 webuiRouter.get("/webui/inventory", virtualRouteController);
39 webuiRouter.get("/webui/detailedView", virtualRouteController);
40 webuiRouter.get("/webui/mods", virtualRouteController);
41 webuiRouter.get("/webui/settings", virtualRouteController);
42 webuiRouter.get("/webui/quests", virtualRouteController);
43 webuiRouter.get("/webui/cheats", virtualRouteController);
44 webuiRouter.get("/webui/import", virtualRouteController);
45 webuiRouter.get("/webui/guildView", virtualRouteController);
58 46
59 47 // Serve static files
60 48 webuiRouter.use("/webui", express.static(path.join(baseDir, "static/webui")));
Modified src/services/configService.ts +1 -0
@@ -39,6 +39,7 @@ export interface IConfig {
39 39 fullyStockedVendors?: boolean;
40 40 skipClanKeyCrafting?: boolean;
41 41 webui?: {
42 enabled?: boolean;
42 43 defaultLanguage?: string;
43 44 };
44 45 unfaithfulBugFixes?: {