alt: merge dependency resolving and modpack launching stage
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user