diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java index 9b2a12837..991f4fbc5 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java @@ -119,16 +119,16 @@ public final class LeftPaneController extends AdvancedListBox { if (repository.getVersionCount() == 0) { File modpackFile = new File("modpack.zip").getAbsoluteFile(); if (modpackFile.exists()) { - Task.ofResult("encoding", () -> CompressingUtils.findSuitableEncoding(modpackFile.toPath())) - .then(Task.ofResult("modpack", var -> ModpackHelper.readModpackManifest(modpackFile.toPath(), var.get("encoding")))) - .then(Task.of(var -> { + Task.ofResult(() -> CompressingUtils.findSuitableEncoding(modpackFile.toPath())) + .thenResult(encoding -> ModpackHelper.readModpackManifest(modpackFile.toPath(), encoding)) + .thenResult(modpack -> { AtomicReference region = new AtomicReference<>(); - Modpack modpack = var.get("modpack"); TaskExecutor executor = ModpackHelper.getInstallTask(repository.getProfile(), modpackFile, modpack.getName(), modpack) .with(Task.of(Schedulers.javafx(), this::checkAccount)).executor(); region.set(Controllers.taskDialog(executor, i18n("modpack.installing"))); executor.start(); - })).start(); + return null; + }).start(); } } } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountLoginPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountLoginPane.java index d1bcd8b61..95ca81e8a 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountLoginPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountLoginPane.java @@ -59,25 +59,19 @@ public class AccountLoginPane extends StackPane { String password = txtPassword.getText(); progressBar.setVisible(true); lblCreationWarning.setText(""); - Task.ofResult("login", () -> { - try { - return oldAccount.logInWithPassword(password); - } catch (Exception e) { - return e; - } - }).subscribe(Schedulers.javafx(), variable -> { - Object account = variable.get("login"); - if (account instanceof AuthInfo) { - success.accept(((AuthInfo) account)); - fireEvent(new DialogCloseEvent()); - } else if (account instanceof NoSelectedCharacterException) { - fireEvent(new DialogCloseEvent()); - } else if (account instanceof Exception) { - lblCreationWarning.setText(AddAccountPane.accountException((Exception) account)); - } - - progressBar.setVisible(false); - }); + Task.ofResult(() -> oldAccount.logInWithPassword(password)) + .finalizedResult(Schedulers.javafx(), authInfo -> { + success.accept(authInfo); + fireEvent(new DialogCloseEvent()); + progressBar.setVisible(false); + }, e -> { + if (e instanceof NoSelectedCharacterException) { + fireEvent(new DialogCloseEvent()); + } else { + lblCreationWarning.setText(AddAccountPane.accountException(e)); + } + progressBar.setVisible(false); + }).start(); } @FXML diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AddAccountPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AddAccountPane.java index 5e5dcb860..0e117dc90 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AddAccountPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AddAccountPane.java @@ -160,10 +160,8 @@ public class AddAccountPane extends StackPane { AccountFactory factory = cboType.getSelectionModel().getSelectedItem(); Object additionalData = getAuthAdditionalData(); - Task.ofResult("create_account", () -> factory.create(new Selector(), username, password, additionalData)) - .finalized(Schedulers.javafx(), variables -> { - - Account account = variables.get("create_account"); + Task.ofResult(() -> factory.create(new Selector(), username, password, additionalData)) + .finalizedResult(Schedulers.javafx(), account -> { int oldIndex = Accounts.getAccounts().indexOf(account); if (oldIndex == -1) { Accounts.getAccounts().add(account); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackPage.java index b759a0820..4efc6f38b 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackPage.java @@ -109,10 +109,9 @@ public final class ModpackPage extends StackPane implements WizardPage { } spinnerPane.showSpinner(); - Task.ofResult("encoding", () -> CompressingUtils.findSuitableEncoding(selectedFile.toPath())) - .then(Task.ofResult("manifest", var -> - manifest = ModpackHelper.readModpackManifest(selectedFile.toPath(), var.get("encoding")))) - .finalized(Schedulers.javafx(), var -> { + Task.ofResult(() -> CompressingUtils.findSuitableEncoding(selectedFile.toPath())) + .thenResult(encoding -> manifest = ModpackHelper.readModpackManifest(selectedFile.toPath(), encoding)) + .finalizedResult(Schedulers.javafx(), manifest -> { spinnerPane.hideSpinner(); controller.getSettings().put(MODPACK_MANIFEST, manifest); lblName.setText(manifest.getName());