From cd989b10589b1b9c9ea733c93ee419a1fca6b07c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=9E=E5=BA=90?= <109708109+CiiLu@users.noreply.github.com> Date: Fri, 20 Feb 2026 21:20:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=80=9A=E8=BF=87=20cf=20/=20mr=20?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E5=AE=89=E8=A3=85=E6=95=B4=E5=90=88=E5=8C=85?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E8=BF=94=E5=9B=9E=E6=9C=89=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=A4=9A=E4=BD=99=E6=95=B4=E5=90=88=E5=8C=85=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E9=A1=B5=E9=9D=A2=20(#5556)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Glavo --- .../ModpackInstallWizardProvider.java | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackInstallWizardProvider.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackInstallWizardProvider.java index bd6a40012..ddb255262 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackInstallWizardProvider.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackInstallWizardProvider.java @@ -145,20 +145,31 @@ public final class ModpackInstallWizardProvider implements WizardProvider { return finishModpackInstallingAsync(settings); } + private static Node createModpackInstallPage(WizardController controller) { + if (controller.getSettings().containsKey(LocalModpackPage.MODPACK_FILE)) + return new LocalModpackPage(controller); + else if (controller.getSettings().containsKey(RemoteModpackPage.MODPACK_SERVER_MANIFEST)) + return new RemoteModpackPage(controller); + else + throw new IllegalArgumentException(); + } + @Override public Node createPage(WizardController controller, int step, SettingsMap settings) { - switch (step) { - case 0: - return new ModpackSelectionPage(controller); - case 1: - if (controller.getSettings().containsKey(LocalModpackPage.MODPACK_FILE)) - return new LocalModpackPage(controller); - else if (controller.getSettings().containsKey(RemoteModpackPage.MODPACK_SERVER_MANIFEST)) - return new RemoteModpackPage(controller); - else - throw new IllegalArgumentException(); - default: - throw new IllegalStateException("error step " + step + ", settings: " + settings + ", pages: " + controller.getPages()); + boolean hasSource = controller.getSettings().containsKey(LocalModpackPage.MODPACK_FILE) || settings.containsKey(RemoteModpackPage.MODPACK_SERVER_MANIFEST); + if (hasSource) { + return switch (step) { + case 0 -> createModpackInstallPage(controller); + default -> throw new IllegalStateException( + "error step " + step + ", settings: " + settings + ", pages: " + controller.getPages()); + }; + } else { + return switch (step) { + case 0 -> new ModpackSelectionPage(controller); + case 1 -> createModpackInstallPage(controller); + default -> throw new IllegalStateException( + "error step " + step + ", settings: " + settings + ", pages: " + controller.getPages()); + }; } }