返回提交历史
Added
src/controllers/api/createGuildDojoController.ts
+35
-0
Modified
src/controllers/api/getGuildDojoController.ts
+0
-13
Modified
src/routes/api.ts
+3
-1
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
代码差异
3 个文件
+38
-14
@@ -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
}
@@ -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(
@@ -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);