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: create clan dojo on demand (#3474)

This way, creating the dojo in U8 makes the clan have the old spawn room. Newer versions still have this room so it's not a problem. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3474 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

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

代码差异

3 个文件 +38 -14
Added src/controllers/api/createGuildDojoController.ts +35 -0
@@ -0,0 +1,35 @@
1 import type { RequestHandler } from "express";
2 //import type { IOidWithLegacySupport } from "../../types/commonTypes.ts";
3 import { Types } from "mongoose";
4 import { getDojoClient, getGuildForRequestEx } from "../../services/guildService.ts";
5 import { getJSONfromString } from "../../helpers/stringHelpers.ts";
6 import { getAccountForRequest } from "../../services/loginService.ts";
7 import { getInventory } from "../../services/inventoryService.ts";
8
9 export const createGuildDojoController: RequestHandler = async (req, res) => {
10 const account = await getAccountForRequest(req);
11 const inventory = await getInventory(account._id.toString(), "GuildId");
12 const guild = await getGuildForRequestEx(req, inventory);
13
14 if (guild.DojoComponents.length == 0) {
15 const payload = getJSONfromString<ICreateGuildDojoRequest>(String(req.body));
16 guild.DojoComponents.push({
17 _id: new Types.ObjectId(),
18 pf: payload.SpawnComponent.pf,
19 ppf: "",
20 CompletionTime: new Date(Date.now() - 2000),
21 DecoCapacity: 600
22 });
23 await guild.save();
24 }
25
26 res.json(await getDojoClient(guild, 0, undefined, account.BuildLabel));
27 };
28
29 interface ICreateGuildDojoRequest {
30 SpawnComponent: {
31 //id: IOidWithLegacySupport; // all zeroes or empty string
32 pf: string; // "/Lotus/Levels/ClanDojo/DojoHall.level" nowadays, but "/Lotus/Levels/ClanDojo/ClanHallA.level" before U9.5
33 //ppf?: ""; // not given in U8, and empty string in modern versions
34 };
35 }
Modified src/controllers/api/getGuildDojoController.ts +0 -13
@@ -1,5 +1,4 @@
1 1 import type { RequestHandler } from "express";
2 import { Types } from "mongoose";
3 2 import { Guild } from "../../models/guildModel.ts";
4 3 import { getDojoClient } from "../../services/guildService.ts";
5 4 import { Account } from "../../models/loginModel.ts";
@@ -13,18 +12,6 @@ export const getGuildDojoController: RequestHandler = async (req, res) => {
13 12 return;
14 13 }
15 14
16 // Populate dojo info if not present
17 if (guild.DojoComponents.length == 0) {
18 guild.DojoComponents.push({
19 _id: new Types.ObjectId(),
20 pf: "/Lotus/Levels/ClanDojo/DojoHall.level",
21 ppf: "",
22 CompletionTime: new Date(Date.now() - 1000),
23 DecoCapacity: 600
24 });
25 await guild.save();
26 }
27
28 15 const payload: IGetGuildDojoRequest = req.body ? (JSON.parse(String(req.body)) as IGetGuildDojoRequest) : {};
29 16 const account = await Account.findById(req.query.accountId as string);
30 17 res.json(
Modified src/routes/api.ts +3 -1
@@ -1,7 +1,7 @@
1 1 import express from "express";
2 2 import { abandonLibraryDailyTaskController } from "../controllers/api/abandonLibraryDailyTaskController.ts";
3 import { abortDojoComponentGetController, abortDojoComponentPostController } from "../controllers/api/abortDojoComponentController.ts";
4 3 import { abortDojoComponentDestructionController } from "../controllers/api/abortDojoComponentDestructionController.ts";
4 import { abortDojoComponentGetController, abortDojoComponentPostController } from "../controllers/api/abortDojoComponentController.ts";
5 5 import { activateRandomModController } from "../controllers/api/activateRandomModController.ts";
6 6 import { addFriendGetController, addFriendPostController } from "../controllers/api/addFriendController.ts";
7 7 import { addFriendImageGetController, addFriendImagePostController } from "../controllers/api/addFriendImageController.ts";
@@ -36,6 +36,7 @@ import { contributeGuildClassController } from "../controllers/api/contributeGui
36 36 import { contributeToDojoComponentController } from "../controllers/api/contributeToDojoComponentController.ts";
37 37 import { contributeToVaultController } from "../controllers/api/contributeToVaultController.ts";
38 38 import { createAllianceController } from "../controllers/api/createAllianceController.ts";
39 import { createGuildDojoController } from "../controllers/api/createGuildDojoController.ts";
39 40 import { createGuildGetController, createGuildPostController } from "../controllers/api/createGuildController.ts";
40 41 import { creditsController } from "../controllers/api/creditsController.ts";
41 42 import { crewMembersController } from "../controllers/api/crewMembersController.ts";
@@ -285,6 +286,7 @@ apiRouter.post("/contributeToDojoComponent.php", contributeToDojoComponentContro
285 286 apiRouter.post("/contributeToVault.php", contributeToVaultController);
286 287 apiRouter.post("/createAlliance.php", createAllianceController);
287 288 apiRouter.post("/createGuild.php", createGuildPostController);
289 apiRouter.post("/createGuildDojo.php", createGuildDojoController);
288 290 apiRouter.post("/crewMembers.php", crewMembersController);
289 291 apiRouter.post("/crewShipFusion.php", crewShipFusionController);
290 292 apiRouter.post("/crewShipIdentifySalvage.php", crewShipIdentifySalvageController);