From 2a42ecda78d12553ec6712510b151f5eac4ab8de Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sat, 6 Oct 2018 00:47:36 +0800 Subject: [PATCH 1/4] Support authlib-injector ALI See yushijinhun/authlib-injector#18 --- .../account/AddAuthlibInjectorServerPane.java | 19 +--- .../hmcl/ui/construct/URLValidator.java | 37 ------- .../fxml/authlib-injector-server-add.fxml | 12 +-- .../AuthlibInjectorServer.java | 101 ++++++++++++++++-- 4 files changed, 95 insertions(+), 74 deletions(-) delete mode 100644 HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/URLValidator.java 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 @@ - - - - - - - - - - - +