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: echoes of umbra (#2177)

Having this item in the inventory unlocks the helminth option which is helpfully called "remove cyst" to install and uninstall it on a frame. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2177 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

6c2055a2
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

3 个文件 +30 -1
Added src/controllers/api/umbraController.ts +27 -0
@@ -0,0 +1,27 @@
1 import { fromMongoDate, fromOid } from "@/src/helpers/inventoryHelpers";
2 import { getJSONfromString } from "@/src/helpers/stringHelpers";
3 import { addMiscItem, getInventory } from "@/src/services/inventoryService";
4 import { getAccountIdForRequest } from "@/src/services/loginService";
5 import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
6 import { RequestHandler } from "express";
7
8 export const umbraController: RequestHandler = async (req, res) => {
9 const accountId = await getAccountIdForRequest(req);
10 const inventory = await getInventory(accountId, "Suits MiscItems");
11 const payload = getJSONfromString<IUmbraRequest>(String(req.body));
12 for (const clientSuit of payload.Suits) {
13 const dbSuit = inventory.Suits.id(fromOid(clientSuit.ItemId))!;
14 if (clientSuit.UmbraDate) {
15 addMiscItem(inventory, "/Lotus/Types/Items/MiscItems/UmbraEchoes", -1);
16 dbSuit.UmbraDate = fromMongoDate(clientSuit.UmbraDate);
17 } else {
18 dbSuit.UmbraDate = undefined;
19 }
20 }
21 await inventory.save();
22 res.end();
23 };
24
25 interface IUmbraRequest {
26 Suits: IEquipmentClient[];
27 }
Modified src/routes/api.ts +2 -0
@@ -148,6 +148,7 @@ import { syndicateStandingBonusController } from "@/src/controllers/api/syndicat
148 148 import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
149 149 import { tradingController } from "@/src/controllers/api/tradingController";
150 150 import { trainingResultController } from "@/src/controllers/api/trainingResultController";
151 import { umbraController } from "@/src/controllers/api/umbraController";
151 152 import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
152 153 import { updateAlignmentController } from "@/src/controllers/api/updateAlignmentController";
153 154 import { updateChallengeProgressController } from "@/src/controllers/api/updateChallengeProgressController";
@@ -329,6 +330,7 @@ apiRouter.post("/syndicateSacrifice.php", syndicateSacrificeController);
329 330 apiRouter.post("/syndicateStandingBonus.php", syndicateStandingBonusController);
330 331 apiRouter.post("/tauntHistory.php", tauntHistoryController);
331 332 apiRouter.post("/trainingResult.php", trainingResultController);
333 apiRouter.post("/umbra.php", umbraController);
332 334 apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController);
333 335 apiRouter.post("/updateAlignment.php", updateAlignmentController);
334 336 apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController);
Modified src/services/inventoryService.ts +1 -1
@@ -1580,7 +1580,7 @@ export const addMiscItem = (
1580 1580 inventory: TInventoryDatabaseDocument,
1581 1581 type: string,
1582 1582 count: number,
1583 inventoryChanges: IInventoryChanges
1583 inventoryChanges: IInventoryChanges = {}
1584 1584 ): void => {
1585 1585 const miscItemChanges: IMiscItem[] = [
1586 1586 {