From 8ae5fcfad0c933f7d7148d504fa51caf3c149a64 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Fri, 2 May 2025 22:14:44 -0700 Subject: [PATCH] fix: login failure on u25 & u26 (#1967) also updated the setGuildMotd response for the old UI before LongMOTD Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1967 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- src/controllers/api/getAllianceController.ts | 1 + src/controllers/api/loginController.ts | 32 +++++++++++-------- src/controllers/api/setGuildMotdController.ts | 7 +++- src/routes/api.ts | 2 ++ src/types/loginTypes.ts | 4 +-- 5 files changed, 30 insertions(+), 16 deletions(-) diff --git a/src/controllers/api/getAllianceController.ts b/src/controllers/api/getAllianceController.ts index 5da0966d..a4ea7bcd 100644 --- a/src/controllers/api/getAllianceController.ts +++ b/src/controllers/api/getAllianceController.ts @@ -18,6 +18,7 @@ export const getAllianceController: RequestHandler = async (req, res) => { res.end(); }; +// POST request since U27 /*interface IGetAllianceRequest { memberCount: number; clanLeaderName: string; diff --git a/src/controllers/api/loginController.ts b/src/controllers/api/loginController.ts index f872f3a2..013e9067 100644 --- a/src/controllers/api/loginController.ts +++ b/src/controllers/api/loginController.ts @@ -101,30 +101,36 @@ const createLoginResponse = (myAddress: string, account: IDatabaseAccountJson, b id: account.id, DisplayName: account.DisplayName, CountryCode: account.CountryCode, - ForceLogoutVersion: account.ForceLogoutVersion, AmazonAuthToken: account.AmazonAuthToken, AmazonRefreshToken: account.AmazonRefreshToken, ConsentNeeded: account.ConsentNeeded, TrackedSettings: account.TrackedSettings, Nonce: account.Nonce, - Groups: [], IRC: config.myIrcAddresses ?? [myAddress], NRS: config.NRS, BuildLabel: buildLabel }; + if (version_compare(buildLabel, "2019.08.29.20.01") >= 0) { + // U25.7 and up + resp.ForceLogoutVersion = account.ForceLogoutVersion; + } + if (version_compare(buildLabel, "2019.10.31.22.42") >= 0) { + // U26 and up + resp.Groups = []; + } if (version_compare(buildLabel, "2021.04.13.19.58") >= 0) { resp.DTLS = 99; - if (version_compare(buildLabel, "2022.04.29.12.53") >= 0) { - resp.ClientType = account.ClientType; - if (version_compare(buildLabel, "2022.09.06.19.24") >= 0) { - resp.CrossPlatformAllowed = account.CrossPlatformAllowed; - resp.HUB = `https://${myAddress}/api/`; - resp.MatchmakingBuildId = buildConfig.matchmakingBuildId; - if (version_compare(buildLabel, "2023.04.25.23.40") >= 0) { - resp.platformCDNs = [`https://${myAddress}/`]; - } - } - } + } + if (version_compare(buildLabel, "2022.04.29.12.53") >= 0) { + resp.ClientType = account.ClientType; + } + if (version_compare(buildLabel, "2022.09.06.19.24") >= 0) { + resp.CrossPlatformAllowed = account.CrossPlatformAllowed; + resp.HUB = `https://${myAddress}/api/`; + resp.MatchmakingBuildId = buildConfig.matchmakingBuildId; + } + if (version_compare(buildLabel, "2023.04.25.23.40") >= 0) { + resp.platformCDNs = [`https://${myAddress}/`]; } return resp; }; diff --git a/src/controllers/api/setGuildMotdController.ts b/src/controllers/api/setGuildMotdController.ts index 8f1e28a7..62f10521 100644 --- a/src/controllers/api/setGuildMotdController.ts +++ b/src/controllers/api/setGuildMotdController.ts @@ -2,6 +2,7 @@ import { Alliance, Guild, GuildMember } from "@/src/models/guildModel"; import { hasGuildPermissionEx } from "@/src/services/guildService"; import { getInventory } from "@/src/services/inventoryService"; import { getAccountForRequest, getSuffixedName } from "@/src/services/loginService"; +import { version_compare } from "@/src/services/worldStateService"; import { GuildPermission, ILongMOTD } from "@/src/types/guildTypes"; import { RequestHandler } from "express"; @@ -55,5 +56,9 @@ export const setGuildMotdController: RequestHandler = async (req, res) => { await guild.save(); } - res.json({ IsLongMOTD, MOTD }); + if (!account.BuildLabel || version_compare(account.BuildLabel, "2020.03.24.20.24") > 0) { + res.json({ IsLongMOTD, MOTD }); + } else { + res.send(MOTD).end(); + } }; diff --git a/src/routes/api.ts b/src/routes/api.ts index f594c845..30616eb3 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -170,6 +170,7 @@ apiRouter.get("/deleteSession.php", deleteSessionController); apiRouter.get("/divvyAllianceVault.php", divvyAllianceVaultController); apiRouter.get("/dojo", dojoController); apiRouter.get("/drones.php", dronesController); +apiRouter.get("/getAlliance.php", getAllianceController); apiRouter.get("/getDailyDealStockLevels.php", getDailyDealStockLevelsController); apiRouter.get("/getFriends.php", getFriendsController); apiRouter.get("/getGuild.php", getGuildController); @@ -308,6 +309,7 @@ apiRouter.post("/trainingResult.php", trainingResultController); apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController); apiRouter.post("/updateAlignment.php", updateAlignmentController); apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController); +apiRouter.post("/updateInventory.php", missionInventoryUpdateController); // U26 and below apiRouter.post("/updateNodeIntros.php", genericUpdateController); apiRouter.post("/updateQuest.php", updateQuestController); apiRouter.post("/updateSession.php", updateSessionPostController); diff --git a/src/types/loginTypes.ts b/src/types/loginTypes.ts index 3f412d1e..fc4bef6a 100644 --- a/src/types/loginTypes.ts +++ b/src/types/loginTypes.ts @@ -5,7 +5,7 @@ export interface IAccountAndLoginResponseCommons { CountryCode: string; ClientType?: string; CrossPlatformAllowed?: boolean; - ForceLogoutVersion: number; + ForceLogoutVersion?: number; AmazonAuthToken?: string; AmazonRefreshToken?: string; ConsentNeeded: boolean; @@ -45,7 +45,7 @@ export interface ILoginRequest { export interface ILoginResponse extends IAccountAndLoginResponseCommons { id: string; - Groups: IGroup[]; + Groups?: IGroup[]; BuildLabel: string; MatchmakingBuildId?: string; platformCDNs?: string[];