diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAccountPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAccountPane.java index b32868f91..782606e0f 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAccountPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAccountPane.java @@ -67,6 +67,7 @@ public class AddAccountPane extends StackPane { @FXML private Label lblAddInjectorServer; @FXML private Hyperlink linkAddInjectorServer; @FXML private JFXDialogLayout layout; + @FXML private JFXButton btnAccept; private final Consumer finalization; public AddAccountPane(Consumer finalization) { @@ -83,6 +84,7 @@ public class AddAccountPane extends StackPane { cboServers.setVisible(newValue.intValue() == 2); linkAddInjectorServer.setVisible(newValue.intValue() == 2); lblAddInjectorServer.setVisible(newValue.intValue() == 2); + validateAcceptButton(); }); cboType.getSelectionModel().select(0); @@ -94,6 +96,12 @@ public class AddAccountPane extends StackPane { txtUsername.setOnAction(e -> onCreationAccept()); txtUsername.getValidators().add(new Validator(Launcher.i18n("input.email"), str -> !txtPassword.isVisible() || str.contains("@"))); + txtUsername.textProperty().addListener(it -> validateAcceptButton()); + txtPassword.textProperty().addListener(it -> validateAcceptButton()); + } + + private void validateAcceptButton() { + btnAccept.setDisable(!txtUsername.validate() || (cboType.getSelectionModel().getSelectedIndex() != 0 && !txtPassword.validate())); } private void loadServers() { diff --git a/HMCL/src/main/resources/assets/fxml/account-add.fxml b/HMCL/src/main/resources/assets/fxml/account-add.fxml index f6ff6f095..4361683f8 100644 --- a/HMCL/src/main/resources/assets/fxml/account-add.fxml +++ b/HMCL/src/main/resources/assets/fxml/account-add.fxml @@ -56,7 +56,7 @@ diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/OfflineAccountFactory.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/OfflineAccountFactory.java index 35290a887..6b666664d 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/OfflineAccountFactory.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/OfflineAccountFactory.java @@ -50,7 +50,7 @@ public class OfflineAccountFactory extends AccountFactory { .orElseThrow(() -> new IllegalStateException("Offline account configuration malformed.")); String uuid = Lang.get(storage, "uuid", String.class) .orElse(getUUIDFromUserName(username)); - + // Check if the uuid is vaild UUIDTypeAdapter.fromString(uuid);