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

chore: don't send endo rewards to pre-U18.18 clients (#4068)

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

74d4f833
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

2 个文件 +18 -0
Modified src/controllers/api/missionInventoryUpdateController.ts +8 -0
@@ -17,6 +17,9 @@ import type {
17 17 } from "../../types/missionTypes.ts";
18 18 import { sendWsBroadcastTo } from "../../services/wsService.ts";
19 19 import { generateRewardSeed } from "../../services/rngService.ts";
20 import { version_compare } from "../../helpers/inventoryHelpers.ts";
21 import gameToBuildVersion from "../../constants/gameToBuildVersion.ts";
22 import { filterInplace } from "../../helpers/general.ts";
20 23
21 24 /*
22 25 **** INPUT ****
@@ -108,6 +111,11 @@ export const missionInventoryUpdateController: RequestHandler = async (req, res)
108 111 }
109 112 await inventory.save();
110 113
114 if (account.BuildLabel && version_compare(account.BuildLabel, gameToBuildVersion["18.18.0"]) < 0) {
115 // Client might crash if they see Endo, but their kids are gonna love it.
116 filterInplace(MissionRewards, x => !x.StoreItem.startsWith("/Lotus/StoreItems/Upgrades/Mods/FusionBundles/"));
117 }
118
111 119 //TODO: figure out when to send inventory. it is needed for many cases.
112 120 const deltas: IMissionInventoryUpdateResponseRailjackInterstitial = {
113 121 InventoryChanges: inventoryChanges,
Modified src/helpers/general.ts +10 -0
@@ -74,3 +74,13 @@ export const isObject = (objectCandidate: unknown): objectCandidate is Record<st
74 74 export const lerp = (v0: number, v1: number, t: number): number => {
75 75 return v0 + t * (v1 - v0);
76 76 };
77
78 export const filterInplace = <T>(arr: T[], cond: (elm: T) => boolean): void => {
79 for (let i = 0; i != arr.length; ) {
80 if (cond(arr[i])) {
81 ++i;
82 } else {
83 arr.splice(i, 1);
84 }
85 }
86 };