From 2d515108f06301d356aba352d77f6f9e50dfe286 Mon Sep 17 00:00:00 2001 From: SashegDev Date: Fri, 8 May 2026 15:45:23 +0000 Subject: [PATCH] Debug: log server version response --- .../sashegdev/zernmc/launcher/Bootstrap.java | 18 +++++++++++++++--- server/main.py | 16 ++++++++++++---- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/launcher/bootstrap/src/main/java/me/sashegdev/zernmc/launcher/Bootstrap.java b/launcher/bootstrap/src/main/java/me/sashegdev/zernmc/launcher/Bootstrap.java index 0a2b1fb..c3106d9 100644 --- a/launcher/bootstrap/src/main/java/me/sashegdev/zernmc/launcher/Bootstrap.java +++ b/launcher/bootstrap/src/main/java/me/sashegdev/zernmc/launcher/Bootstrap.java @@ -95,9 +95,21 @@ public class Bootstrap { conn.setReadTimeout(5000); if (conn.getResponseCode() == 200) { try (BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()))) { - String line = br.readLine(); - if (line != null && line.contains("version")) { - return line.replaceAll(".*\"version\"\\s*:\\s*\"([^\"]+)\".*", "$1"); + StringBuilder sb = new StringBuilder(); + String line; + while ((line = br.readLine()) != null) { + sb.append(line); + } + String response = sb.toString(); + log("Server response: " + response); + + int versionStart = response.indexOf("\"version\":\""); + if (versionStart >= 0) { + int afterVersion = versionStart + 11; + int versionEnd = response.indexOf("\"", afterVersion); + if (versionEnd > afterVersion) { + return response.substring(afterVersion, versionEnd); + } } } } diff --git a/server/main.py b/server/main.py index 92b2009..0538b0b 100644 --- a/server/main.py +++ b/server/main.py @@ -878,6 +878,14 @@ def scan_launcher_version(version: str) -> Optional[dict]: return meta +def parse_version_key(v: str) -> tuple: + """Parse version string for proper numeric sorting""" + try: + parts = v.split(".") + return tuple(int(p) for p in parts) + except: + return (0, 0, 0) + def get_launcher_versions() -> list: """Get list of available launcher versions with meta""" if not VERSIONS_DIR.exists(): @@ -893,7 +901,7 @@ def get_launcher_versions() -> list: "meta": meta }) - versions.sort(key=lambda x: x["version"], reverse=True) + versions.sort(key=lambda x: parse_version_key(x["version"]), reverse=True) return versions @@ -955,7 +963,7 @@ def get_available_zips() -> list: "is_legacy": parsed["is_legacy"] }) - zips.sort(key=lambda x: x["version"], reverse=True) + zips.sort(key=lambda x: parse_version_key(x["version"]), reverse=True) return zips @@ -975,7 +983,7 @@ def get_new_format_zips() -> list: "modified": datetime.fromtimestamp(stat.st_mtime).isoformat() }) - zips.sort(key=lambda x: x["version"], reverse=True) + zips.sort(key=lambda x: parse_version_key(x["version"]), reverse=True) return zips @@ -1005,7 +1013,7 @@ def get_legacy_zips() -> list: "is_legacy": True }) - zips.sort(key=lambda x: x["version"], reverse=True) + zips.sort(key=lambda x: parse_version_key(x["version"]), reverse=True) return zips