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 c4aeb0b3a..6277b9129 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 @@ -31,6 +31,7 @@ import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.layout.StackPane; import org.jackhuang.hmcl.auth.*; +import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorDownloadException; import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorServer; import org.jackhuang.hmcl.auth.yggdrasil.GameProfile; import org.jackhuang.hmcl.auth.yggdrasil.RemoteAuthenticationException; @@ -278,6 +279,8 @@ public class AddAccountPane extends StackPane { return i18n("account.failed.invalid_password"); } return exception.getMessage(); + } else if (exception instanceof AuthlibInjectorDownloadException) { + return i18n("account.failed.injector_download_failure"); } else { return exception.getClass().getName() + ": " + exception.getLocalizedMessage(); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AddAuthlibInjectorServerPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AddAuthlibInjectorServerPane.java index 7ad0ce437..2235e94c0 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AddAuthlibInjectorServerPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AddAuthlibInjectorServerPane.java @@ -21,7 +21,6 @@ import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXDialogLayout; import com.jfoenix.controls.JFXTextField; -import javafx.beans.binding.Bindings; import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.layout.StackPane; @@ -39,7 +38,6 @@ import java.io.IOException; import static org.jackhuang.hmcl.setting.ConfigHolder.config; import static org.jackhuang.hmcl.ui.FXUtils.loadFXML; -import static org.jackhuang.hmcl.util.Lang.thread; import static org.jackhuang.hmcl.util.i18n.I18n.i18n; public class AddAuthlibInjectorServerPane extends StackPane implements DialogAware { @@ -70,24 +68,13 @@ public class AddAuthlibInjectorServerPane extends StackPane implements DialogAwa transitionHandler = new TransitionHandler(addServerContainer); transitionHandler.setContent(addServerPane, ContainerAnimations.NONE.getAnimationProducer()); - btnAddNext.disableProperty().bind( - Bindings.createBooleanBinding(txtServerUrl::validate, txtServerUrl.textProperty()).not()); + btnAddNext.disableProperty().bind(txtServerUrl.textProperty().isEmpty()); nextPane.hideSpinner(); - - txtServerUrl.setText("https://"); } @Override public void onDialogShown() { txtServerUrl.requestFocus(); - txtServerUrl.selectEnd(); - } - - private String fixInputUrl(String url) { - if (!url.endsWith("/")) { - url += "/"; - } - return url; } private String resolveFetchExceptionMessage(Throwable exception) { @@ -110,13 +97,13 @@ public class AddAuthlibInjectorServerPane extends StackPane implements DialogAwa lblCreationWarning.setText(""); - String url = fixInputUrl(txtServerUrl.getText()); + String url = txtServerUrl.getText(); nextPane.showSpinner(); addServerPane.setDisable(true); Task.of(() -> { - serverBeingAdded = AuthlibInjectorServer.fetchServerInfo(url); + serverBeingAdded = AuthlibInjectorServer.locateServer(url); }).finalized(Schedulers.javafx(), (variables, isDependentsSucceeded) -> { addServerPane.setDisable(false); nextPane.hideSpinner(); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/URLValidator.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/URLValidator.java deleted file mode 100644 index 87a5f38fa..000000000 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/URLValidator.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.jackhuang.hmcl.ui.construct; - -import com.jfoenix.validation.base.ValidatorBase; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.scene.control.TextInputControl; - -import java.net.MalformedURLException; -import java.net.URL; - -public class URLValidator extends ValidatorBase { - - private final ObservableList protocols = FXCollections.observableArrayList(); - - public URLValidator() { - super(); - } - - public ObservableList getProtocols() { - return protocols; - } - - @Override - protected void eval() { - if (srcControl.get() instanceof TextInputControl) { - try { - URL url = new URL(((TextInputControl) srcControl.get()).getText()); - if (protocols.isEmpty()) - hasErrors.set(false); - else - hasErrors.set(!protocols.contains(url.getProtocol())); - } catch (MalformedURLException e) { - hasErrors.set(true); - } - } - } -} diff --git a/HMCL/src/main/resources/assets/fxml/authlib-injector-server-add.fxml b/HMCL/src/main/resources/assets/fxml/authlib-injector-server-add.fxml index e060d182e..6065f6fe1 100644 --- a/HMCL/src/main/resources/assets/fxml/authlib-injector-server-add.fxml +++ b/HMCL/src/main/resources/assets/fxml/authlib-injector-server-add.fxml @@ -4,7 +4,6 @@ - - - - - - - - - - - +