XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

feat: inbox message for relics cracked during an unfinished mission (#2823)

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

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

代码差异

1 个文件 +21 -0
Modified src/controllers/api/loginController.ts +21 -0
@@ -9,6 +9,9 @@ import type { IDatabaseAccountJson, ILoginRequest, ILoginResponse } from "../../
9 9 import { logger } from "../../utils/logger.ts";
10 10 import { version_compare } from "../../helpers/inventoryHelpers.ts";
11 11 import { handleNonceInvalidation } from "../../services/wsService.ts";
12 import { getInventory } from "../../services/inventoryService.ts";
13 import { createMessage } from "../../services/inboxService.ts";
14 import { fromStoreItem } from "../../services/itemDataService.ts";
12 15
13 16 export const loginController: RequestHandler = async (request, response) => {
14 17 const loginRequest = JSON.parse(String(request.body)) as ILoginRequest; // parse octet stream of json data to json object
@@ -76,6 +79,24 @@ export const loginController: RequestHandler = async (request, response) => {
76 79
77 80 handleNonceInvalidation(account._id.toString());
78 81
82 // If the client crashed during an endless fissure mission, discharge rewards to an inbox message. (https://www.reddit.com/r/Warframe/comments/5uwwjm/til_if_you_crash_during_a_fissure_you_keep_any/)
83 const inventory = await getInventory(account._id.toString(), "MissionRelicRewards");
84 if (inventory.MissionRelicRewards) {
85 await createMessage(account._id, [
86 {
87 sndr: "/Lotus/Language/Bosses/Ordis",
88 msg: "/Lotus/Language/Menu/VoidProjectionItemsMessage",
89 sub: "/Lotus/Language/Menu/VoidProjectionItemsSubject",
90 icon: "/Lotus/Interface/Icons/Npcs/Ordis.png",
91 countedAtt: inventory.MissionRelicRewards.map(x => ({ ...x, ItemType: fromStoreItem(x.ItemType) })),
92 attVisualOnly: true,
93 highPriority: true // TOVERIFY
94 }
95 ]);
96 inventory.MissionRelicRewards = undefined;
97 await inventory.save();
98 }
99
79 100 response.json(createLoginResponse(myAddress, myUrlBase, account.toJSON(), buildLabel));
80 101 };
81 102