fix: 通过 cf / mr 直接安装整合包页面返回有一个多余整合包安装选择页面 (#5556)

Co-authored-by: Glavo <zjx001202@gmail.com>
This commit is contained in:
辞庐
2026-02-20 21:20:50 +08:00
committed by GitHub
parent 5bc5ae8d15
commit cd989b1058

View File

@@ -145,20 +145,31 @@ public final class ModpackInstallWizardProvider implements WizardProvider {
return finishModpackInstallingAsync(settings); 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 @Override
public Node createPage(WizardController controller, int step, SettingsMap settings) { public Node createPage(WizardController controller, int step, SettingsMap settings) {
switch (step) { boolean hasSource = controller.getSettings().containsKey(LocalModpackPage.MODPACK_FILE) || settings.containsKey(RemoteModpackPage.MODPACK_SERVER_MANIFEST);
case 0: if (hasSource) {
return new ModpackSelectionPage(controller); return switch (step) {
case 1: case 0 -> createModpackInstallPage(controller);
if (controller.getSettings().containsKey(LocalModpackPage.MODPACK_FILE)) default -> throw new IllegalStateException(
return new LocalModpackPage(controller); "error step " + step + ", settings: " + settings + ", pages: " + controller.getPages());
else if (controller.getSettings().containsKey(RemoteModpackPage.MODPACK_SERVER_MANIFEST)) };
return new RemoteModpackPage(controller); } else {
else return switch (step) {
throw new IllegalArgumentException(); case 0 -> new ModpackSelectionPage(controller);
default: case 1 -> createModpackInstallPage(controller);
throw new IllegalStateException("error step " + step + ", settings: " + settings + ", pages: " + controller.getPages()); default -> throw new IllegalStateException(
"error step " + step + ", settings: " + settings + ", pages: " + controller.getPages());
};
} }
} }