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: handle empty id provided in getRecentPlayers (#3552)

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

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

代码差异

1 个文件 +10 -0
Modified src/controllers/api/getRecentPlayersController.ts +10 -0
@@ -3,12 +3,22 @@ import type { IFriendInfo } from "../../types/friendTypes.ts";
3 3 import { getJSONfromString } from "../../helpers/stringHelpers.ts";
4 4 import { addAccountDataToFriendInfo, addInventoryDataToFriendInfo } from "../../services/friendService.ts";
5 5 import { getAccountForRequest } from "../../services/loginService.ts";
6 import { fromOid, toOid2 } from "../../helpers/inventoryHelpers.ts";
7 import { Account } from "../../models/loginModel.ts";
6 8
7 9 export const getRecentPlayersController: RequestHandler = async (req, res): Promise<void> => {
8 10 const account = await getAccountForRequest(req);
9 11 const payload = getJSONfromString<IRecentPlayersPayload>(String(req.body));
10 12 const promises: Promise<void>[] = [];
11 13 for (const info of payload.RecentPlayers) {
14 if (!fromOid(info._id)) {
15 // U18 may provide an empty $id but with a DisplayName for us to look us.
16 const otherAccount = await Account.findOne({ DisplayName: info.DisplayName }, "_id");
17 if (!otherAccount) {
18 continue;
19 }
20 info._id = toOid2(otherAccount._id, account.BuildLabel);
21 }
12 22 promises.push(addAccountDataToFriendInfo(info, account.BuildLabel));
13 23 promises.push(addInventoryDataToFriendInfo(info));
14 24 }