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; } /**