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

chore: ensure 'founders' get their honoria as intended (#3714)

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

936942e8
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

3 个文件 +34 -1
Modified src/controllers/api/inventoryController.ts +5 -0
@@ -26,6 +26,7 @@ import {
26 26 checkCalendarAutoAdvance,
27 27 cleanupInventory,
28 28 createLibraryDailyTask,
29 ensureUserHasFounderHonoria,
29 30 getCalendarProgress
30 31 } from "../../services/inventoryService.ts";
31 32 import { logger } from "../../utils/logger.ts";
@@ -231,6 +232,10 @@ export const inventoryController: RequestHandler = async (request, response) =>
231 232 }
232 233 }
233 234
235 if (inventory.Founder) {
236 await ensureUserHasFounderHonoria(inventory);
237 }
238
234 239 cleanupInventory(inventory);
235 240
236 241 inventory.NextRefill = new Date((today + 1) * 86400000); // tomorrow at 0 UTC
Modified src/controllers/custom/importController.ts +4 -1
@@ -1,5 +1,5 @@
1 1 import { importInventory, importLoadOutPresets, importPersonalRooms } from "../../services/importService.ts";
2 import { getInventory } from "../../services/inventoryService.ts";
2 import { ensureUserHasFounderHonoria, getInventory } from "../../services/inventoryService.ts";
3 3 import { getLoadout } from "../../services/loadoutService.ts";
4 4 import { getAccountIdForRequest } from "../../services/loginService.ts";
5 5 import { getPersonalRooms } from "../../services/personalRoomsService.ts";
@@ -18,6 +18,9 @@ export const importController: RequestHandler = async (req, res) => {
18 18 importInventory(inventory, request.inventory);
19 19 if (inventory.isModified()) {
20 20 anyKnownKey = true;
21 if (inventory.Founder) {
22 await ensureUserHasFounderHonoria(inventory);
23 }
21 24 await inventory.save();
22 25 }
23 26
Modified src/services/inventoryService.ts +25 -0
@@ -2984,3 +2984,28 @@ export const updateEntratiVault = (inventory: TInventoryDatabaseDocument): void
2984 2984 }
2985 2985 }
2986 2986 };
2987
2988 export const ensureUserHasFounderHonoria = async (inventory: TInventoryDatabaseDocument): Promise<void> => {
2989 if (!inventory.FlavourItems.some(x => x.ItemType == "/Lotus/Types/Items/Titles/FounderLvl1Title")) {
2990 const eligibleItems = [
2991 "/Lotus/Types/Items/Titles/FounderLvl1Title",
2992 "/Lotus/Types/Items/Titles/FounderLvl2Title",
2993 "/Lotus/Types/Items/Titles/FounderLvl3Title",
2994 "/Lotus/Types/Items/Titles/FounderLvl4Title"
2995 ].splice(0, inventory.Founder);
2996 for (const item of eligibleItems) {
2997 addCustomization(inventory, item);
2998 }
2999 await createMessage(inventory.accountOwnerId, [
3000 {
3001 sndr: "/Lotus/Language/CircleOfHell/RoatheName",
3002 icon: "/Lotus/Interface/Icons/Npcs/Roathe.png",
3003 sub: "/Lotus/Language/Inbox/FounderTitleReceivedTitle",
3004 msg: "/Lotus/Language/Inbox/FounderTitleReceivedBody",
3005 att: eligibleItems,
3006 highPriority: true, // TOVERIFY
3007 attVisualOnly: true
3008 }
3009 ]);
3010 }
3011 };