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: omit 'unknown properties' from credits.php for old versions (#3996)

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

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

代码差异

2 个文件 +24 -26
Modified src/constants/gameToBuildVersion.ts +1 -0
@@ -67,6 +67,7 @@ const gameToBuildVersion = {
67 67 "12.1.2": "2014.02.14.17.05",
68 68 "11.5.3": "2013.12.21.01.47",
69 69 "11.1.3": "2013.11.29.16.33",
70 "10.8.0": "2013.11.12.14.03",
70 71 "10.3.3": "2013.10.11.17.01",
71 72 "9.1.0": "2013.07.13.03.21",
72 73 "8.3.0": "2013.07.04.20.17",
Modified src/controllers/api/creditsController.ts +23 -26
@@ -1,6 +1,8 @@
1 1 import type { RequestHandler } from "express";
2 import { getAccountIdForRequest } from "../../services/loginService.ts";
2 import { getAccountForRequest } from "../../services/loginService.ts";
3 3 import { getInventory } from "../../services/inventoryService.ts";
4 import { version_compare } from "../../helpers/inventoryHelpers.ts";
5 import gameToBuildVersion from "../../constants/gameToBuildVersion.ts";
4 6
5 7 export const creditsController: RequestHandler = async (req, res) => {
6 8 // U9 and below are known to sometimes send this request without credentials, so just handle it more gracefully.
@@ -9,33 +11,28 @@ export const creditsController: RequestHandler = async (req, res) => {
9 11 return;
10 12 }
11 13
12 const inventory = (
13 await Promise.all([
14 getAccountIdForRequest(req),
15 getInventory(
16 req.query.accountId as string,
17 "RegularCredits TradesRemaining PremiumCreditsFree PremiumCredits infiniteCredits infinitePlatinum infiniteTrades"
18 )
19 ])
20 )[1];
14 const account = await getAccountForRequest(req);
15 const inventory = await getInventory(
16 account._id,
17 "RegularCredits TradesRemaining PremiumCreditsFree PremiumCredits infiniteCredits infinitePlatinum infiniteTrades"
18 );
21 19
22 const response = {
23 RegularCredits: inventory.RegularCredits,
24 TradesRemaining: inventory.TradesRemaining,
25 PremiumCreditsFree: inventory.PremiumCreditsFree,
26 PremiumCredits: inventory.PremiumCredits
20 const response: ICreditsResponse = {
21 RegularCredits: inventory.infiniteCredits ? 999999999 : inventory.RegularCredits,
22 PremiumCredits: inventory.infinitePlatinum ? 999999999 : inventory.PremiumCredits
27 23 };
28
29 if (inventory.infiniteCredits) {
30 response.RegularCredits = 999999999;
31 }
32 if (inventory.infinitePlatinum) {
33 response.PremiumCreditsFree = 0;
34 response.PremiumCredits = 999999999;
35 }
36 if (inventory.infiniteTrades) {
37 response.TradesRemaining = 9999;
24 if (account.BuildLabel && version_compare(account.BuildLabel, gameToBuildVersion["10.8.0"]) > 0) {
25 response.PremiumCreditsFree = inventory.infinitePlatinum ? 0 : inventory.PremiumCreditsFree;
26 if (version_compare(account.BuildLabel, gameToBuildVersion["15.0.0"]) >= 0) {
27 response.TradesRemaining = inventory.TradesRemaining;
28 }
38 29 }
39
40 30 res.json(response);
41 31 };
32
33 interface ICreditsResponse {
34 RegularCredits: number;
35 PremiumCredits: number;
36 PremiumCreditsFree?: number;
37 TradesRemaining?: number;
38 }