@@ -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