返回提交历史
Modified
src/controllers/api/loginController.ts
+21
-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
代码差异
1 个文件
+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