返回提交历史
Modified
src/controllers/api/missionInventoryUpdateController.ts
+8
-0
Modified
src/helpers/general.ts
+10
-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
代码差异
2 个文件
+18
-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,
@@ -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
};