From a79a2014b0f0d9333a8d986bc66a5596029504e2 Mon Sep 17 00:00:00 2001 From: Glavo Date: Fri, 2 Feb 2024 01:11:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E6=B8=B8=E6=88=8F=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E9=9A=90=E8=97=8F=E4=B8=8D=E5=8F=AF=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E7=BB=84=E7=AE=A1=E7=90=86=E5=99=A8=20(#2726?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 在 Minecraft 1.13+ 的安装界面隐藏 liteloader 选项 * update * fix checkstyle * fix checkstyle --- .../org/jackhuang/hmcl/ui/InstallerItem.java | 18 ++++++++++++--- .../hmcl/ui/download/InstallersPage.java | 23 +++++++++++++------ .../hmcl/ui/versions/InstallerListPage.java | 2 +- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java index 2f15ac23d..4ba2d52d1 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java @@ -38,6 +38,7 @@ import org.jackhuang.hmcl.setting.Theme; import org.jackhuang.hmcl.setting.VersionIconType; import org.jackhuang.hmcl.ui.construct.RipplerContainer; import org.jackhuang.hmcl.util.i18n.I18n; +import org.jackhuang.hmcl.util.versioning.VersionNumber; import static org.jackhuang.hmcl.download.LibraryAnalyzer.LibraryType.*; import static org.jackhuang.hmcl.util.i18n.I18n.i18n; @@ -121,7 +122,7 @@ public class InstallerItem extends Control { return new InstallerItemSkin(this); } - public static class InstallerItemGroup { + public final static class InstallerItemGroup { public final InstallerItem game = new InstallerItem(MINECRAFT); public final InstallerItem fabric = new InstallerItem(FABRIC); public final InstallerItem fabricApi = new InstallerItem(FABRIC_API); @@ -132,7 +133,9 @@ public class InstallerItem extends Control { public final InstallerItem quilt = new InstallerItem(QUILT); public final InstallerItem quiltApi = new InstallerItem(QUILT_API); - public InstallerItemGroup() { + private final InstallerItem[] libraries; + + public InstallerItemGroup(String gameVersion) { forge.incompatibleLibraryName.bind(Bindings.createStringBinding(() -> { if (fabric.libraryVersion.get() != null) return FABRIC.getPatchId(); if (quilt.libraryVersion.get() != null) return QUILT.getPatchId(); @@ -194,10 +197,19 @@ public class InstallerItem extends Control { if (quilt.libraryVersion.get() == null) return QUILT.getPatchId(); else return null; }, quilt.libraryVersion)); + + + if (gameVersion == null) { + this.libraries = new InstallerItem[]{game, forge, neoForge, liteLoader, optiFine, fabric, fabricApi, quilt, quiltApi}; + } else if (VersionNumber.compare(gameVersion, "1.13") < 0) { + this.libraries = new InstallerItem[]{game, forge, liteLoader, optiFine}; + } else { + this.libraries = new InstallerItem[]{game, forge, neoForge, optiFine, fabric, fabricApi, quilt, quiltApi}; + } } public InstallerItem[] getLibraries() { - return new InstallerItem[]{game, forge, neoForge, liteLoader, optiFine, fabric, fabricApi, quilt, quiltApi}; + return libraries; } } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java index a36a2c09d..aa6cc4fa8 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java @@ -48,12 +48,13 @@ import static org.jackhuang.hmcl.util.i18n.I18n.i18n; public class InstallersPage extends Control implements WizardPage { protected final WizardController controller; - protected InstallerItem.InstallerItemGroup group = new InstallerItem.InstallerItemGroup(); + protected InstallerItem.InstallerItemGroup group; protected JFXTextField txtName = new JFXTextField(); protected BooleanProperty installable = new SimpleBooleanProperty(); public InstallersPage(WizardController controller, HMCLGameRepository repository, String gameVersion, DownloadProvider downloadProvider) { this.controller = controller; + this.group = new InstallerItem.InstallerItemGroup(gameVersion); txtName.getValidators().addAll( new RequiredValidator(), @@ -152,14 +153,22 @@ public class InstallersPage extends Control implements WizardPage { } { - FlowPane libraryPane = new FlowPane(control.group.getLibraries()); + InstallerItem[] libraries = control.group.getLibraries(); + + FlowPane libraryPane = new FlowPane(libraries); libraryPane.setVgap(16); libraryPane.setHgap(16); - ScrollPane scrollPane = new ScrollPane(libraryPane); - scrollPane.setFitToWidth(true); - scrollPane.setFitToHeight(true); - BorderPane.setMargin(scrollPane, new Insets(16, 0, 16, 0)); - root.setCenter(scrollPane); + + if (libraries.length <= 8) { + BorderPane.setMargin(libraryPane, new Insets(16, 0, 16, 0)); + root.setCenter(libraryPane); + } else { + ScrollPane scrollPane = new ScrollPane(libraryPane); + scrollPane.setFitToWidth(true); + scrollPane.setFitToHeight(true); + BorderPane.setMargin(scrollPane, new Insets(16, 0, 16, 0)); + root.setCenter(scrollPane); + } } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/InstallerListPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/InstallerListPage.java index b5ebc9865..adb3198ef 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/InstallerListPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/InstallerListPage.java @@ -84,7 +84,7 @@ public class InstallerListPage extends ListPageBase implements Ve itemsProperty().clear(); - InstallerItem.InstallerItemGroup group = new InstallerItem.InstallerItemGroup(); + InstallerItem.InstallerItemGroup group = new InstallerItem.InstallerItemGroup(gameVersion); // Conventional libraries: game, fabric, forge, neoforge, liteloader, optifine for (InstallerItem installerItem : group.getLibraries()) {