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

SpaceNinjaServer

A simple server for a small space ninja game

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

XFEstudio/SpaceNinjaServer

feat: dojo component settings (#1509)

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

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

代码差异

5 个文件 +31 -1
Added src/controllers/api/setDojoComponentSettingsController.ts +25 -0
@@ -0,0 +1,25 @@
1 import { getJSONfromString } from "@/src/helpers/stringHelpers";
2 import { getDojoClient, getGuildForRequestEx, hasAccessToDojo, hasGuildPermission } from "@/src/services/guildService";
3 import { getInventory } from "@/src/services/inventoryService";
4 import { getAccountIdForRequest } from "@/src/services/loginService";
5 import { GuildPermission } from "@/src/types/guildTypes";
6 import { RequestHandler } from "express";
7
8 export const setDojoComponentSettingsController: RequestHandler = async (req, res) => {
9 const accountId = await getAccountIdForRequest(req);
10 const inventory = await getInventory(accountId, "GuildId LevelKeys");
11 const guild = await getGuildForRequestEx(req, inventory);
12 if (!hasAccessToDojo(inventory) || !(await hasGuildPermission(guild, accountId, GuildPermission.Decorator))) {
13 res.json({ DojoRequestStatus: -1 });
14 return;
15 }
16 const component = guild.DojoComponents.id(req.query.componentId)!;
17 const data = getJSONfromString<ISetDojoComponentSettingsRequest>(String(req.body));
18 component.Settings = data.Settings;
19 await guild.save();
20 res.json(await getDojoClient(guild, 0, component._id));
21 };
22
23 interface ISetDojoComponentSettingsRequest {
24 Settings: string;
25 }
Modified src/models/guildModel.ts +1 -0
@@ -63,6 +63,7 @@ const dojoComponentSchema = new Schema<IDojoComponentDatabase>({
63 63 Colors: { type: [Number], default: undefined },
64 64 PendingLights: { type: [Number], default: undefined },
65 65 Lights: { type: [Number], default: undefined },
66 Settings: String,
66 67 Leaderboard: { type: [dojoLeaderboardEntrySchema], default: undefined }
67 68 });
68 69
Modified src/routes/api.ts +2 -0
@@ -107,6 +107,7 @@ import { setAllianceGuildPermissionsController } from "@/src/controllers/api/set
107 107 import { setBootLocationController } from "@/src/controllers/api/setBootLocationController";
108 108 import { setDojoComponentColorsController } from "@/src/controllers/api/setDojoComponentColorsController";
109 109 import { setDojoComponentMessageController } from "@/src/controllers/api/setDojoComponentMessageController";
110 import { setDojoComponentSettingsController } from "@/src/controllers/api/setDojoComponentSettingsController";
110 111 import { setEquippedInstrumentController } from "@/src/controllers/api/setEquippedInstrumentController";
111 112 import { setGuildMotdController } from "@/src/controllers/api/setGuildMotdController";
112 113 import { setPlacedDecoInfoController } from "@/src/controllers/api/setPlacedDecoInfoController";
@@ -264,6 +265,7 @@ apiRouter.post("/saveVaultAutoContribute.php", saveVaultAutoContributeController
264 265 apiRouter.post("/sell.php", sellController);
265 266 apiRouter.post("/setDojoComponentColors.php", setDojoComponentColorsController);
266 267 apiRouter.post("/setDojoComponentMessage.php", setDojoComponentMessageController);
268 apiRouter.post("/setDojoComponentSettings.php", setDojoComponentSettingsController);
267 269 apiRouter.post("/setEquippedInstrument.php", setEquippedInstrumentController);
268 270 apiRouter.post("/setGuildMotd.php", setGuildMotdController);
269 271 apiRouter.post("/setPlacedDecoInfo.php", setPlacedDecoInfoController);
Modified src/services/guildService.ts +2 -1
@@ -151,7 +151,8 @@ export const getDojoClient = async (
151 151 ppf: dojoComponent.ppf,
152 152 Name: dojoComponent.Name,
153 153 Message: dojoComponent.Message,
154 DecoCapacity: dojoComponent.DecoCapacity ?? 600
154 DecoCapacity: dojoComponent.DecoCapacity ?? 600,
155 Settings: dojoComponent.Settings
155 156 };
156 157 if (dojoComponent.pi) {
157 158 clientComponent.pi = toOid(dojoComponent.pi);
Modified src/types/guildTypes.ts +1 -0
@@ -181,6 +181,7 @@ export interface IDojoComponentClient {
181 181 Colors?: number[];
182 182 PendingLights?: number[];
183 183 Lights?: number[];
184 Settings?: string;
184 185 }
185 186
186 187 export interface IDojoComponentDatabase