Skip to content

Commit cd989b1

Browse files
CiiLuGlavo
andauthored
fix: 通过 cf / mr 直接安装整合包页面返回有一个多余整合包安装选择页面 (#5556)
Co-authored-by: Glavo <zjx001202@gmail.com>
1 parent 5bc5ae8 commit cd989b1

1 file changed

Lines changed: 23 additions & 12 deletions

File tree

HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackInstallWizardProvider.java

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -145,20 +145,31 @@ public Object finish(SettingsMap settings) {
145145
return finishModpackInstallingAsync(settings);
146146
}
147147

148+
private static Node createModpackInstallPage(WizardController controller) {
149+
if (controller.getSettings().containsKey(LocalModpackPage.MODPACK_FILE))
150+
return new LocalModpackPage(controller);
151+
else if (controller.getSettings().containsKey(RemoteModpackPage.MODPACK_SERVER_MANIFEST))
152+
return new RemoteModpackPage(controller);
153+
else
154+
throw new IllegalArgumentException();
155+
}
156+
148157
@Override
149158
public Node createPage(WizardController controller, int step, SettingsMap settings) {
150-
switch (step) {
151-
case 0:
152-
return new ModpackSelectionPage(controller);
153-
case 1:
154-
if (controller.getSettings().containsKey(LocalModpackPage.MODPACK_FILE))
155-
return new LocalModpackPage(controller);
156-
else if (controller.getSettings().containsKey(RemoteModpackPage.MODPACK_SERVER_MANIFEST))
157-
return new RemoteModpackPage(controller);
158-
else
159-
throw new IllegalArgumentException();
160-
default:
161-
throw new IllegalStateException("error step " + step + ", settings: " + settings + ", pages: " + controller.getPages());
159+
boolean hasSource = controller.getSettings().containsKey(LocalModpackPage.MODPACK_FILE) || settings.containsKey(RemoteModpackPage.MODPACK_SERVER_MANIFEST);
160+
if (hasSource) {
161+
return switch (step) {
162+
case 0 -> createModpackInstallPage(controller);
163+
default -> throw new IllegalStateException(
164+
"error step " + step + ", settings: " + settings + ", pages: " + controller.getPages());
165+
};
166+
} else {
167+
return switch (step) {
168+
case 0 -> new ModpackSelectionPage(controller);
169+
case 1 -> createModpackInstallPage(controller);
170+
default -> throw new IllegalStateException(
171+
"error step " + step + ", settings: " + settings + ", pages: " + controller.getPages());
172+
};
162173
}
163174
}
164175

0 commit comments

Comments
 (0)