Skip to content

Commit 729ef34

Browse files
authored
fix(skymp5-client): de-hardcode server id and master url (#2326)
1 parent e82760b commit 729ef34

File tree

2 files changed

+30
-16
lines changed

2 files changed

+30
-16
lines changed

skymp5-client/src/services/services/authService.ts

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,27 @@ export class AuthService extends ClientListener {
5353
this.controller.once("update", () => this.onceUpdate());
5454
}
5555

56+
// TODO: consider moving to a separate service called SettingsService
57+
public getServerMasterKey() {
58+
let masterKey = this.sp.settings["skymp5-client"]["server-master-key"];
59+
if (!masterKey) {
60+
masterKey = this.sp.settings["skymp5-client"]["master-key"];
61+
}
62+
if (!masterKey) {
63+
masterKey = this.sp.settings["skymp5-client"]["server-ip"] + ":" + this.sp.settings["skymp5-client"]["server-port"];
64+
}
65+
return masterKey;
66+
}
67+
68+
// TODO: consider moving to a separate service called SettingsService
69+
public getMasterUrl() {
70+
return this.normalizeUrl((this.sp.settings["skymp5-client"]["master"] as string) || "https://gateway.skymp.net");
71+
}
72+
73+
public getMasterApiId() {
74+
return authData?.masterApiId;
75+
}
76+
5677
private onAuthNeeded(e: AuthNeededEvent) {
5778
logTrace(this, `Received authNeeded event`);
5879

@@ -223,15 +244,8 @@ export class AuthService extends ClientListener {
223244

224245
private createPlaySession(token: string, callback: (res: string, err: string) => void) {
225246
const client = new this.sp.HttpClient(this.getMasterUrl());
226-
let masterKey = this.sp.settings["skymp5-client"]["server-master-key"];
227-
if (!masterKey) {
228-
masterKey = this.sp.settings["skymp5-client"]["master-key"];
229-
}
230-
if (!masterKey) {
231-
masterKey = this.sp.settings["skymp5-client"]["server-ip"] + ":" + this.sp.settings["skymp5-client"]["server-port"];
232-
}
233247

234-
const route = `/api/users/me/play/${masterKey}`;
248+
const route = `/api/users/me/play/${this.getServerMasterKey()}`;
235249

236250
logTrace(this, `Creating play session ${route}`);
237251

@@ -357,10 +371,6 @@ export class AuthService extends ClientListener {
357371
}
358372
};
359373

360-
private getMasterUrl() {
361-
return this.normalizeUrl((this.sp.settings["skymp5-client"]["master"] as string) || "https://gateway.skymp.net");
362-
}
363-
364374
private normalizeUrl(url: string) {
365375
if (url.endsWith('/')) {
366376
return url.slice(0, url.length - 1);

skymp5-client/src/services/services/loadOrderVerificationService.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { getScreenResolution } from "../../view/formView";
33
import { ClientListener, CombinedController, Sp } from "./clientListener";
44
import { Mod, ServerManifest } from "../messages_http/serverManifest";
55
import { logTrace } from "../../logging";
6+
import { AuthService } from "./authService";
67

78
const STATE_KEY = 'loadOrderCheckState';
89

@@ -106,12 +107,15 @@ export class LoadOrderVerificationService extends ClientListener {
106107
}
107108

108109
private getServerMods(retriesLeft: number): Promise<Mod[]> {
109-
// TODO: unhardcode master address
110-
// TODO: unhardcode serverId (sweetpie)
111-
let addr = "https://gateway.skymp.net";
110+
const authService = this.controller.lookupListener(AuthService);
111+
112+
const addr = authService.getMasterUrl();
113+
const masterKey = authService.getServerMasterKey();
112114
printConsole(addr);
115+
printConsole(masterKey);
116+
113117
return new HttpClient(addr)
114-
.get('/api/servers/sweetpie/manifest.json')
118+
.get(`/api/servers/${masterKey}/manifest.json`)
115119
.then((res) => {
116120
if (res.status != 200) {
117121
throw new Error(`Status code ${res.status}, error ${res.error}`);

0 commit comments

Comments
 (0)