From 7bc2fb772970149ce0d50613d1d00d3c6795bbfd Mon Sep 17 00:00:00 2001 From: Jordan Irwin Date: Sat, 16 Dec 2023 02:17:40 -0800 Subject: [PATCH] Remove configuration setting for connecting test client to main server Only allow configuring through query string. --- srcjs/stendhal.html | 4 ---- srcjs/stendhal/Client.ts | 2 +- srcjs/stendhal/ui/dialog/SettingsDialog.ts | 13 ------------- srcjs/stendhal/util/ConfigManager.ts | 2 -- srcjs/stendhal/util/SessionManager.ts | 22 +++++++++++++++++----- 5 files changed, 18 insertions(+), 25 deletions(-) diff --git a/srcjs/stendhal.html b/srcjs/stendhal.html index 4b4dd0dc26e..8601c29a4b6 100644 --- a/srcjs/stendhal.html +++ b/srcjs/stendhal.html @@ -254,10 +254,6 @@

-
diff --git a/srcjs/stendhal/Client.ts b/srcjs/stendhal/Client.ts index 120e05fe3aa..cfaa9195857 100644 --- a/srcjs/stendhal/Client.ts +++ b/srcjs/stendhal/Client.ts @@ -145,7 +145,7 @@ export class Client { this.registerBrowserEventHandlers(); let ws = Paths.ws.substring(1); - if (stendhal.session.isTestClient() && !stendhal.config.getBoolean("connection.testserver")) { + if (stendhal.session.isTestClient() && !stendhal.session.isServerDefault()) { ws = ws.replace(/t/, "s"); // disclaimer for using the test client on the main server Chat.log("warning", "WARNING: You are connecting to the production server with a development" diff --git a/srcjs/stendhal/ui/dialog/SettingsDialog.ts b/srcjs/stendhal/ui/dialog/SettingsDialog.ts index f80138a9dbf..4af9b8f4e24 100644 --- a/srcjs/stendhal/ui/dialog/SettingsDialog.ts +++ b/srcjs/stendhal/ui/dialog/SettingsDialog.ts @@ -43,7 +43,6 @@ export class SettingsDialog extends DialogContentComponent { this.initialStates = { "gamescreen.blood": stendhal.config.get("gamescreen.blood"), - "connection.testserver": stendhal.config.get("connection.testserver") }; @@ -130,18 +129,6 @@ export class SettingsDialog extends DialogContentComponent { /* *** right panel *** */ - const sel_server = this.createSelect("selserver", {"test": "test", "main": "main"}, - stendhal.config.getBoolean("connection.testserver") ? 0 : 1, - "Select \"main\" to connect to main server with test client (requires page reload)"); - sel_server.addEventListener("change", (e) => { - stendhal.config.set("connection.testserver", sel_server.selectedIndex == 0); - this.refresh(); - }); - // server selection is hidden unless test client is detected - if (stendhal.session.isTestClient()) { - sel_server.parentElement!.style["display"] = "block"; - } - const themes = {} as {[index: string]: string}; for (const t of Object.keys(stendhal.config.themes.map)) { if (t === "wood") { diff --git a/srcjs/stendhal/util/ConfigManager.ts b/srcjs/stendhal/util/ConfigManager.ts index 43b4446ee97..c1cfc5f9eee 100644 --- a/srcjs/stendhal/util/ConfigManager.ts +++ b/srcjs/stendhal/util/ConfigManager.ts @@ -56,8 +56,6 @@ export class ConfigManager { "action.inventory.quickpickup": "true", "event.pvtmsg.sound": "ui/notify_up", "chat.custom_keywords": "", - // test client only - "connection.testserver": "true" } as {[id: string]: string}; private themes = { diff --git a/srcjs/stendhal/util/SessionManager.ts b/srcjs/stendhal/util/SessionManager.ts index dd253ad18c9..b38c211b05a 100644 --- a/srcjs/stendhal/util/SessionManager.ts +++ b/srcjs/stendhal/util/SessionManager.ts @@ -17,6 +17,7 @@ export class SessionManager { private storage = window.sessionStorage; private charname?: string; private initialized = false; + private server_default = true; /** Singleton instance. */ private static instance: SessionManager; @@ -50,12 +51,10 @@ export class SessionManager { if (charname) { this.setCharName(charname); } - // server selection (test client only) + // server selection from query string (test client only) const server = args.get("server"); - if (server) { - // TODO: Don't store connection & remove option from settings dialog. Note that Android - // WebView client will need updated to set server connection in query string. - stendhal.config.set("connection.testserver", server !== "main"); + if (server && this.isTestClient()) { + this.server_default = server !== "main"; } } @@ -113,4 +112,17 @@ export class SessionManager { isTestClient(): boolean { return stendhal.paths.data === "/testdata"; } + + /** + * Checks if the client should connect to its default server counterpart. + * + * Used for test client only. + * + * @return + * `true` is test client should connect to test server. `false` if it should connect to main + * server. + */ + isServerDefault(): boolean { + return this.server_default; + } }