From 1a03b8f3a9f21c060a158ef280da0aa1ef3247b5 Mon Sep 17 00:00:00 2001 From: simoleo89 Date: Sun, 14 Jun 2026 19:00:22 +0200 Subject: [PATCH] fix(gui): require explicit dashboard autostart --- Emulator/src/main/java/com/eu/habbo/Emulator.java | 7 ++++++- .../java/com/eu/habbo/EmulatorStartupConsoleTest.java | 10 ++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Emulator/src/main/java/com/eu/habbo/Emulator.java b/Emulator/src/main/java/com/eu/habbo/Emulator.java index 8fbc94cd..720b6af0 100644 --- a/Emulator/src/main/java/com/eu/habbo/Emulator.java +++ b/Emulator/src/main/java/com/eu/habbo/Emulator.java @@ -159,6 +159,7 @@ public final class Emulator { Emulator.config.register("camera.render.delay", "5"); Emulator.config.register("hotel.timezone", java.time.ZoneId.systemDefault().getId()); Emulator.config.register("gui.enabled", "0"); + Emulator.config.register("gui.autostart.enabled", "0"); String hotelTimezoneId = Emulator.getConfig().getValue("hotel.timezone", java.time.ZoneId.systemDefault().getId()); System.out.println(startupCard(hotelTimezoneId)); Emulator.texts.register("camera.permission", "You don't have permission to use the camera!"); @@ -198,7 +199,7 @@ public final class Emulator { Emulator.isReady = true; Emulator.timeStarted = getIntUnixTimestamp(); - if (Emulator.getConfig().getBoolean("gui.enabled", false)) { + if (shouldLaunchGui()) { EmulatorDashboard.launch(); } @@ -388,6 +389,10 @@ public final class Emulator { } } + static boolean shouldLaunchGui() { + return Emulator.getConfig() != null && Emulator.getConfig().getBoolean("gui.autostart.enabled", false); + } + private static String fit(String value, int width) { String safe = value == null ? "" : value; if (safe.length() > width) { diff --git a/Emulator/src/test/java/com/eu/habbo/EmulatorStartupConsoleTest.java b/Emulator/src/test/java/com/eu/habbo/EmulatorStartupConsoleTest.java index 3a4f6499..c748f081 100644 --- a/Emulator/src/test/java/com/eu/habbo/EmulatorStartupConsoleTest.java +++ b/Emulator/src/test/java/com/eu/habbo/EmulatorStartupConsoleTest.java @@ -76,7 +76,13 @@ class EmulatorStartupConsoleTest { assertTrue(source.contains("register(\"gui.enabled\", \"0\")"), "gui.enabled must be registered disabled by default so it does not log missing config errors or start the UI unexpectedly"); - assertTrue(source.indexOf("register(\"gui.enabled\", \"0\")") < source.indexOf("getBoolean(\"gui.enabled\", false)"), - "gui.enabled must be registered before it is read"); + assertTrue(source.contains("register(\"gui.autostart.enabled\", \"0\")"), + "GUI autostart must use a new disabled-by-default key so old gui.enabled=1 settings do not launch the current UI"); + assertTrue(source.indexOf("register(\"gui.autostart.enabled\", \"0\")") < source.indexOf("shouldLaunchGui()"), + "GUI autostart must be registered before the launch decision"); + assertFalse(source.contains("getBoolean(\"gui.enabled\", true)"), + "GUI must not use a true fallback"); + assertFalse(source.contains("getBoolean(\"gui.enabled\", false)"), + "legacy gui.enabled must not control startup anymore"); } }