From 1934199ba858d33c988f0a62435fd97e4c401c01 Mon Sep 17 00:00:00 2001 From: SashegDev Date: Tue, 5 May 2026 08:42:51 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D1=8F=D0=B5=D0=BC=20=D0=B1=D0=B0=D0=B3=20=D1=81=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B8=D0=B5=D0=B9=20=D1=81=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit раньше latestVersion вычислялся как currentVersion + 1 теперь честно получаем версию с сервера через PackDownloader.checkForUpdates() так же обновили места в LaunchMenu и UpdateMenu где используется этот метод --- .../zernmc/launcher/api/install/InstallService.java | 5 +++-- .../me/sashegdev/zernmc/launcher/menu/LaunchMenu.java | 3 ++- .../me/sashegdev/zernmc/launcher/menu/UpdateMenu.java | 5 +++-- .../zernmc/launcher/minecraft/PackDownloader.java | 11 ++++++----- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/launcher/src/main/java/me/sashegdev/zernmc/launcher/api/install/InstallService.java b/launcher/src/main/java/me/sashegdev/zernmc/launcher/api/install/InstallService.java index 78777a3..d7020e2 100644 --- a/launcher/src/main/java/me/sashegdev/zernmc/launcher/api/install/InstallService.java +++ b/launcher/src/main/java/me/sashegdev/zernmc/launcher/api/install/InstallService.java @@ -65,13 +65,14 @@ public class InstallService { } PackDownloader downloader = new PackDownloader(instance); - boolean hasUpdate = downloader.checkForUpdates(instance.getServerPackName()); + int serverVersion = downloader.checkForUpdates(instance.getServerPackName()); + boolean hasUpdate = serverVersion > 0; return ApiResponse.success(new UpdateCheckResult( hasUpdate, true, instance.getServerVersion(), - hasUpdate ? instance.getServerVersion() + 1 : instance.getServerVersion() + serverVersion )); } catch (Exception e) { return ApiResponse.error("Ошибка проверки обновлений: " + e.getMessage()); diff --git a/launcher/src/main/java/me/sashegdev/zernmc/launcher/menu/LaunchMenu.java b/launcher/src/main/java/me/sashegdev/zernmc/launcher/menu/LaunchMenu.java index 2b5af92..1d81125 100644 --- a/launcher/src/main/java/me/sashegdev/zernmc/launcher/menu/LaunchMenu.java +++ b/launcher/src/main/java/me/sashegdev/zernmc/launcher/menu/LaunchMenu.java @@ -351,7 +351,8 @@ public class LaunchMenu { System.out.println(ZAnsi.cyan("Проверка обновлений для " + instance.getName())); PackDownloader downloader = new PackDownloader(instance); - boolean hasUpdate = downloader.checkForUpdates(instance.getServerPackName()); + int serverVersion = downloader.checkForUpdates(instance.getServerPackName()); + boolean hasUpdate = serverVersion > 0; if (!hasUpdate) { System.out.println(ZAnsi.green("Сборка актуальна (v" + instance.getServerVersion() + ")")); diff --git a/launcher/src/main/java/me/sashegdev/zernmc/launcher/menu/UpdateMenu.java b/launcher/src/main/java/me/sashegdev/zernmc/launcher/menu/UpdateMenu.java index 41f8b20..81a0809 100644 --- a/launcher/src/main/java/me/sashegdev/zernmc/launcher/menu/UpdateMenu.java +++ b/launcher/src/main/java/me/sashegdev/zernmc/launcher/menu/UpdateMenu.java @@ -64,9 +64,10 @@ public class UpdateMenu { for (Instance instance : serverInstances) { PackDownloader downloader = new PackDownloader(instance); - + try { - boolean hasUpdate = downloader.checkForUpdates(instance.getServerPackName()); + int serverVersion = downloader.checkForUpdates(instance.getServerPackName()); + boolean hasUpdate = serverVersion > 0; if (hasUpdate) { System.out.println(ZAnsi.yellow(instance.getName() + " - Есть обновление!")); updatableInstances.add(instance); diff --git a/launcher/src/main/java/me/sashegdev/zernmc/launcher/minecraft/PackDownloader.java b/launcher/src/main/java/me/sashegdev/zernmc/launcher/minecraft/PackDownloader.java index 3059770..9150b8d 100644 --- a/launcher/src/main/java/me/sashegdev/zernmc/launcher/minecraft/PackDownloader.java +++ b/launcher/src/main/java/me/sashegdev/zernmc/launcher/minecraft/PackDownloader.java @@ -225,15 +225,16 @@ public class PackDownloader { /** * Проверить наличие обновлений для серверной сборки + * @return версия на сервере, или 0 если нет обновлений */ - public boolean checkForUpdates(String packName) throws Exception { - if (!instance.isServerPack()) return false; - + public int checkForUpdates(String packName) throws Exception { + if (!instance.isServerPack()) return 0; + PackManifest manifest = getPackManifest(packName); int serverVersion = manifest.getVersion(); int localVersion = instance.getServerVersion(); - - return serverVersion > localVersion; + + return serverVersion > localVersion ? serverVersion : 0; } /**