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: reset custom obstable course leaderboard (#2401)

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

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

代码差异

1 个文件 +18 -2
Modified src/controllers/api/customObstacleCourseLeaderboardController.ts +18 -2
@@ -1,12 +1,15 @@
1 1 import { getJSONfromString } from "@/src/helpers/stringHelpers";
2 2 import { Guild } from "@/src/models/guildModel";
3 import { getAccountForRequest } from "@/src/services/loginService";
3 import { hasAccessToDojo, hasGuildPermission } from "@/src/services/guildService";
4 import { getInventory } from "@/src/services/inventoryService";
5 import { getAccountForRequest, getAccountIdForRequest } from "@/src/services/loginService";
6 import { GuildPermission } from "@/src/types/guildTypes";
4 7 import { logger } from "@/src/utils/logger";
5 8 import { RequestHandler } from "express";
6 9
7 10 export const customObstacleCourseLeaderboardController: RequestHandler = async (req, res) => {
8 11 const data = getJSONfromString<ICustomObstacleCourseLeaderboardRequest>(String(req.body));
9 const guild = (await Guild.findById(data.g, "DojoComponents"))!;
12 const guild = (await Guild.findById(data.g, "DojoComponents Ranks"))!;
10 13 const component = guild.DojoComponents.id(data.c)!;
11 14 if (req.query.act == "f") {
12 15 res.json({
@@ -34,6 +37,19 @@ export const customObstacleCourseLeaderboardController: RequestHandler = async (
34 37 entry.r = ++r;
35 38 }
36 39 await guild.save();
40 res.status(200).end();
41 } else if (req.query.act == "c") {
42 // TOVERIFY: What clan permission is actually needed for this?
43 const accountId = await getAccountIdForRequest(req);
44 const inventory = await getInventory(accountId, "GuildId LevelKeys");
45 if (!hasAccessToDojo(inventory) || !(await hasGuildPermission(guild, accountId, GuildPermission.Decorator))) {
46 res.status(400).end();
47 return;
48 }
49
50 component.Leaderboard = undefined;
51 await guild.save();
52
37 53 res.status(200).end();
38 54 } else {
39 55 logger.debug(`data provided to ${req.path}: ${String(req.body)}`);