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: edit clan tax rate (#1183)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1183

25dfbf47
Sainan <sainan@calamity.inc>
提交于

代码差异

5 个文件 +30 -4
Added src/controllers/api/tradingController.ts +23 -0
@@ -0,0 +1,23 @@
1 import { getGuildForRequestEx, hasAccessToDojo, hasGuildPermission } from "@/src/services/guildService";
2 import { getInventory } from "@/src/services/inventoryService";
3 import { getAccountIdForRequest } from "@/src/services/loginService";
4 import { GuildPermission } from "@/src/types/guildTypes";
5 import { RequestHandler } from "express";
6
7 export const tradingController: RequestHandler = async (req, res) => {
8 const accountId = await getAccountIdForRequest(req);
9 const inventory = await getInventory(accountId, "GuildId LevelKeys");
10 const guild = await getGuildForRequestEx(req, inventory);
11 const op = req.query.op as string;
12 if (op == "5") {
13 if (!hasAccessToDojo(inventory) || !(await hasGuildPermission(guild, accountId, GuildPermission.Treasurer))) {
14 res.status(400).send("-1").end();
15 return;
16 }
17 guild.TradeTax = parseInt(req.query.tax as string);
18 await guild.save();
19 res.send(guild.TradeTax).end();
20 } else {
21 throw new Error(`unknown trading op: ${op}`);
22 }
23 };
Modified src/models/guildModel.ts +1 -0
@@ -142,6 +142,7 @@ const guildSchema = new Schema<IGuildDatabase>(
142 142 MOTD: { type: String, default: "" },
143 143 LongMOTD: { type: longMOTDSchema, default: undefined },
144 144 Ranks: { type: [guildRankSchema], default: defaultRanks },
145 TradeTax: { type: Number, default: 0 },
145 146 DojoComponents: { type: [dojoComponentSchema], default: [] },
146 147 DojoCapacity: { type: Number, default: 100 },
147 148 DojoEnergy: { type: Number, default: 5 },
Modified src/routes/api.ts +2 -0
@@ -102,6 +102,7 @@ import { surveysController } from "@/src/controllers/api/surveysController";
102 102 import { syndicateSacrificeController } from "@/src/controllers/api/syndicateSacrificeController";
103 103 import { syndicateStandingBonusController } from "@/src/controllers/api/syndicateStandingBonusController";
104 104 import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
105 import { tradingController } from "@/src/controllers/api/tradingController";
105 106 import { trainingResultController } from "@/src/controllers/api/trainingResultController";
106 107 import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
107 108 import { updateAlignmentController } from "@/src/controllers/api/updateAlignmentController";
@@ -153,6 +154,7 @@ apiRouter.get("/setSupportedSyndicate.php", setSupportedSyndicateController);
153 154 apiRouter.get("/startLibraryDailyTask.php", startLibraryDailyTaskController);
154 155 apiRouter.get("/startLibraryPersonalTarget.php", startLibraryPersonalTargetController);
155 156 apiRouter.get("/surveys.php", surveysController);
157 apiRouter.get("/trading.php", tradingController);
156 158 apiRouter.get("/updateSession.php", updateSessionGetController);
157 159
158 160 // post
Modified src/services/guildService.ts +1 -0
@@ -90,6 +90,7 @@ export const getGuildClient = async (guild: TGuildDatabaseDocument, accountId: s
90 90 LongMOTD: guild.LongMOTD,
91 91 Members: members,
92 92 Ranks: guild.Ranks,
93 TradeTax: guild.TradeTax,
93 94 Tier: 1,
94 95 Vault: getGuildVault(guild),
95 96 Class: guild.Class,
Modified src/types/guildTypes.ts +3 -4
@@ -8,10 +8,8 @@ export interface IGuildClient {
8 8 MOTD: string;
9 9 LongMOTD?: ILongMOTD;
10 10 Members: IGuildMemberClient[];
11 Ranks: {
12 Name: string;
13 Permissions: number;
14 }[];
11 Ranks: IGuildRank[];
12 TradeTax: number;
15 13 Tier: number;
16 14 Vault: IGuildVault;
17 15 Class: number;
@@ -27,6 +25,7 @@ export interface IGuildDatabase {
27 25 MOTD: string;
28 26 LongMOTD?: ILongMOTD;
29 27 Ranks: IGuildRank[];
28 TradeTax: number;
30 29
31 30 DojoComponents: IDojoComponentDatabase[];
32 31 DojoCapacity: number;