diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java index 876c506c3..c68b823ba 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java @@ -130,25 +130,25 @@ public final class LauncherHelper { TaskExecutor executor = Task.runAsync(() -> { }) - .thenComposeAsync(() -> Task.composeAsync(() -> { - if (setting.isNotCheckGame()) - return null; - else - return dependencyManager.checkGameCompletionAsync(version); - }).withStage("launch.state.dependencies")) - .thenComposeAsync(() -> Task.composeAsync(null, () -> { - try { - ModpackConfiguration configuration = ModpackHelper.readModpackConfiguration(repository.getModpackConfiguration(selectedVersion)); - if ("Curse".equals(configuration.getType())) - return new CurseCompletionTask(dependencyManager, selectedVersion); - else if ("Server".equals(configuration.getType())) - return new ServerModpackCompletionTask(dependencyManager, selectedVersion); - else - return null; - } catch (IOException e) { - return null; - } - }).withStage("launch.state.modpack")) + .thenComposeAsync(() -> Task.allOf( + Task.composeAsync(null, () -> { + if (setting.isNotCheckGame()) + return null; + else + return dependencyManager.checkGameCompletionAsync(version); + }), Task.composeAsync(null, () -> { + try { + ModpackConfiguration configuration = ModpackHelper.readModpackConfiguration(repository.getModpackConfiguration(selectedVersion)); + if ("Curse".equals(configuration.getType())) + return new CurseCompletionTask(dependencyManager, selectedVersion); + else if ("Server".equals(configuration.getType())) + return new ServerModpackCompletionTask(dependencyManager, selectedVersion); + else + return null; + } catch (IOException e) { + return null; + } + })).withStage("launch.state.dependencies")) .thenComposeAsync(() -> Task.supplyAsync((String) null, () -> { try { return account.logIn(); @@ -202,7 +202,6 @@ public final class LauncherHelper { .cancellableExecutor(); executor.setStages(new LocalizedTaskStages(Lang.immutableListOf( "launch.state.dependencies", - "launch.state.modpack", "launch.state.logging_in", "launch.state.waiting_launching"))); launchingStepsPane.setExecutor(executor, false); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/TaskExecutorDialogPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/TaskExecutorDialogPane.java index f78cc19b1..7f7f7bddd 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/TaskExecutorDialogPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/TaskExecutorDialogPane.java @@ -29,8 +29,6 @@ import org.jackhuang.hmcl.task.TaskExecutor; import org.jackhuang.hmcl.task.TaskListener; import org.jackhuang.hmcl.ui.FXUtils; -import java.util.Collections; -import java.util.List; import java.util.Optional; import java.util.function.Consumer; @@ -74,7 +72,7 @@ public class TaskExecutorDialogPane extends StackPane { double finalSpeed = speed; String finalUnit = unit; Platform.runLater(() -> { - lblProgress.setText(String.format("%.1f", finalSpeed) + " " + finalUnit); + lblProgress.setText(String.format("%.1f %s", finalSpeed, finalUnit)); }); }; FileDownloadTask.speedEvent.channel(FileDownloadTask.SpeedEvent.class).registerWeak(speedEventHandler);