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: setBadlandBudgetCaps (#3492)

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

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

代码差异

5 个文件 +47 -1
Added src/controllers/api/setBadlandBudgetCapsController.ts +29 -0
@@ -0,0 +1,29 @@
1 import type { RequestHandler } from "express";
2 import { hasGuildPermission } from "../../services/guildService.ts";
3 import { getAccountIdForRequest } from "../../services/loginService.ts";
4 import { getInventory } from "../../services/inventoryService.ts";
5 import { GuildPermission } from "../../types/guildTypes.ts";
6 import { getJSONfromString } from "../../helpers/stringHelpers.ts";
7 import { Guild } from "../../models/guildModel.ts";
8
9 export const setBadlandBudgetCapsController: RequestHandler = async (req, res) => {
10 const accountId = await getAccountIdForRequest(req);
11 const inventory = await getInventory(accountId, "GuildId");
12 const guild = await Guild.findById(inventory.GuildId); // this request does not have a guildId parameter :(
13 if (!guild || !(await hasGuildPermission(guild, accountId, GuildPermission.Treasurer))) {
14 res.status(400).send("-1").end();
15 return;
16 }
17 const payload = getJSONfromString<ISetBadlandBudgetCapsRequest>(String(req.body));
18 guild.MaxBattlePayReserve = payload.MaxBattlePayReserve;
19 guild.MaxMissionBattlePay = payload.MaxMissionBattlePay;
20 guild.MinMissionBattlePay = payload.MinMissionBattlePay;
21 await guild.save();
22 res.json(payload);
23 };
24
25 interface ISetBadlandBudgetCapsRequest {
26 MaxBattlePayReserve: number;
27 MaxMissionBattlePay: number;
28 MinMissionBattlePay: number;
29 }
Modified src/models/guildModel.ts +3 -0
@@ -229,6 +229,9 @@ const guildSchema = new Schema<IGuildDatabase>(
229 229 VaultShipDecorations: { type: [typeCountSchema], default: undefined },
230 230 VaultFusionTreasures: { type: [fusionTreasuresSchema], default: undefined },
231 231 VaultDecoRecipes: { type: [typeCountSchema], default: undefined },
232 MaxBattlePayReserve: Number,
233 MaxMissionBattlePay: Number,
234 MinMissionBattlePay: Number,
232 235 TechProjects: { type: [techProjectSchema], default: undefined },
233 236 ActiveDojoColorResearch: { type: String, default: "" },
234 237 Class: { type: Number, default: 0 },
Modified src/routes/api.ts +2 -0
@@ -136,6 +136,7 @@ import { sendMsgToInBoxController } from "../controllers/api/sendMsgToInBoxContr
136 136 import { setActiveQuestController } from "../controllers/api/setActiveQuestController.ts";
137 137 import { setActiveShipController } from "../controllers/api/setActiveShipController.ts";
138 138 import { setAllianceGuildPermissionsController } from "../controllers/api/setAllianceGuildPermissionsController.ts";
139 import { setBadlandBudgetCapsController } from "../controllers/api/setBadlandBudgetCapsController.ts";
139 140 import { setBootLocationController } from "../controllers/api/setBootLocationController.ts";
140 141 import { setDojoComponentColorsController } from "../controllers/api/setDojoComponentColorsController.ts";
141 142 import { setDojoComponentMessageController } from "../controllers/api/setDojoComponentMessageController.ts";
@@ -365,6 +366,7 @@ apiRouter.post("/saveVaultAutoContribute.php", saveVaultAutoContributeController
365 366 apiRouter.post("/sell.php", sellController);
366 367 apiRouter.post("/sendMsgToInBox.php", sendMsgToInBoxController);
367 368 apiRouter.post("/sendPetToStasis.php", retrievePetFromStasisController);
369 apiRouter.post("/setBadlandBudgetCaps.php", setBadlandBudgetCapsController);
368 370 apiRouter.post("/setDojoComponentColors.php", setDojoComponentColorsController);
369 371 apiRouter.post("/setDojoComponentMessage.php", setDojoComponentMessageController);
370 372 apiRouter.post("/setDojoComponentSettings.php", setDojoComponentSettingsController);
Modified src/services/guildService.ts +5 -1
@@ -143,7 +143,11 @@ export const getGuildVault = (guild: TGuildDatabaseDocument): IGuildVault => {
143 143 DojoRefundPremiumCredits: guild.VaultPremiumCredits,
144 144 ShipDecorations: guild.VaultShipDecorations,
145 145 FusionTreasures: guild.VaultFusionTreasures,
146 DecoRecipes: guild.VaultDecoRecipes
146 DecoRecipes: guild.VaultDecoRecipes,
147
148 MaxBattlePayReserve: guild.MaxBattlePayReserve,
149 MaxMissionBattlePay: guild.MaxMissionBattlePay,
150 MinMissionBattlePay: guild.MinMissionBattlePay
147 151 };
148 152 };
149 153
Modified src/types/guildTypes.ts +8 -0
@@ -66,6 +66,10 @@ export interface IGuildDatabase extends IGuildCheats {
66 66 VaultFusionTreasures?: IFusionTreasure[];
67 67 VaultDecoRecipes?: ITypeCount[];
68 68
69 MaxBattlePayReserve?: number;
70 MaxMissionBattlePay?: number;
71 MinMissionBattlePay?: number;
72
69 73 TechProjects?: ITechProjectDatabase[];
70 74 ActiveDojoColorResearch: string;
71 75
@@ -144,6 +148,10 @@ export interface IGuildVault {
144 148 ShipDecorations?: ITypeCount[];
145 149 FusionTreasures?: IFusionTreasure[];
146 150 DecoRecipes?: ITypeCount[]; // Event Trophies
151
152 MaxBattlePayReserve?: number;
153 MaxMissionBattlePay?: number;
154 MinMissionBattlePay?: number;
147 155 }
148 156
149 157 export interface IDojoClient {