diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java index 24cd7a769..a04987add 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java @@ -47,6 +47,7 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh private final DownloadProvider downloadProvider; private final String libraryId; private final String title; + private final Runnable callback; @FXML private JFXListView list; @@ -55,6 +56,8 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh @FXML private StackPane failedPane; @FXML + private StackPane emptyPane; + @FXML private JFXCheckBox chkRelease; @FXML private JFXCheckBox chkSnapshot; @@ -74,6 +77,7 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh this.gameVersion = gameVersion; this.downloadProvider = downloadProvider; this.libraryId = libraryId; + this.callback = callback; this.versionList = downloadProvider.getVersionListById(libraryId); FXUtils.loadFXML(this, "/assets/fxml/download/versions.fxml"); @@ -123,8 +127,12 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh List items = loadVersions(); Platform.runLater(() -> { - list.getItems().setAll(items); - transitionHandler.setContent(centrePane, ContainerAnimations.FADE.getAnimationProducer()); + if (items.isEmpty()) { + transitionHandler.setContent(emptyPane, ContainerAnimations.FADE.getAnimationProducer()); + } else { + list.getItems().setAll(items); + transitionHandler.setContent(centrePane, ContainerAnimations.FADE.getAnimationProducer()); + } }); } else { Platform.runLater(() -> { @@ -150,4 +158,7 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh private void onRefresh() { refresh(); } + + @FXML + private void onBack() { callback.run(); } } diff --git a/HMCL/src/main/resources/assets/fxml/download/versions.fxml b/HMCL/src/main/resources/assets/fxml/download/versions.fxml index 3897f1c2e..53f38ea40 100644 --- a/HMCL/src/main/resources/assets/fxml/download/versions.fxml +++ b/HMCL/src/main/resources/assets/fxml/download/versions.fxml @@ -20,4 +20,7 @@ + + diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index 3149bff9f..eec2ddaa5 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -83,6 +83,7 @@ crash.user_fault=Your OS or Java environment may not be properly installed resul download=Download download.BMCL=BMCLAPI (bangbang93, https://bmclapi2.bangbang93.com/) download.failed=Failed to download +download.failed.empty=No candidates. Click here to return. download.failed.refresh=Unable to load version list. Click here to retry. download.mojang=Mojang diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties index a99de3a1a..350a4b8da 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties @@ -83,6 +83,7 @@ crash.user_fault=您的系統或 Java 環境可能安裝不當導致本軟件崩 download=下載 download.BMCL=BMCLAPI(bangbang93,https://bmclapi2.bangbang93.com/) download.failed=下載失敗 +download.failed.empty=沒有可供安裝的版本,點擊此處返回。 download.failed.refresh=加載版本列表失敗,點擊此處重試。 download.mojang=官方 diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties index 291ae689a..b48e641b9 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -83,6 +83,7 @@ crash.user_fault=您的系统或 Java 环境可能安装不当导致本软件崩 download=下载 download.BMCL=BMCLAPI(bangbang93,https://bmclapi2.bangbang93.com/) download.failed=下载失败 +download.failed.empty=没有可供安装的版本,点击此处返回。 download.failed.refresh=加载版本列表失败,点击此处重试。 download.mojang=官方 diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java index b6e0daf91..34d8670cc 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java @@ -73,8 +73,7 @@ public abstract class VersionList { private Collection getVersionsImpl(String gameVersion) { lock.readLock().lock(); try { - Collection ans = versions.get(gameVersion); - return ans.isEmpty() ? versions.values() : ans; + return versions.get(gameVersion); } finally { lock.readLock().unlock(); }