From 8a73fefaaab2ae1c88f21c3817bc165cdd66dc4f Mon Sep 17 00:00:00 2001 From: Bixilon Date: Mon, 21 Dec 2020 19:32:11 +0100 Subject: [PATCH] launcher: addServer: don't allow http and filter spaces while pressing key --- .../java/de/bixilon/minosoft/gui/main/MainWindow.java | 11 ++++++----- src/main/java/de/bixilon/minosoft/util/DNSUtil.java | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/main/MainWindow.java b/src/main/java/de/bixilon/minosoft/gui/main/MainWindow.java index 5a6db4003..7b57620ac 100644 --- a/src/main/java/de/bixilon/minosoft/gui/main/MainWindow.java +++ b/src/main/java/de/bixilon/minosoft/gui/main/MainWindow.java @@ -33,10 +33,7 @@ import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.Scene; -import javafx.scene.control.ButtonType; -import javafx.scene.control.Label; -import javafx.scene.control.Menu; -import javafx.scene.control.MenuItem; +import javafx.scene.control.*; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.layout.BorderPane; @@ -140,11 +137,15 @@ public class MainWindow implements Initializable { RequiredFieldValidator serverAddressValidator = new RequiredFieldValidator(); serverAddressValidator.setMessage(LocaleManager.translate(Strings.SERVER_ADDRESS_INPUT_REQUIRED)); serverAddressField.getValidators().add(serverAddressValidator); - serverAddressField.focusedProperty().addListener((o, oldValue, newValue) -> { + serverAddressField.focusedProperty().addListener((observableValue, oldValue, newValue) -> { if (!newValue) { serverAddressField.validate(); } }); + serverAddressField.setTextFormatter(new TextFormatter((change) -> { + change.setText(DNSUtil.correctHostName(change.getText())); + return change; + })); GUITools.VERSION_COMBO_BOX.getSelectionModel().select(Versions.LOWEST_VERSION_SUPPORTED); diff --git a/src/main/java/de/bixilon/minosoft/util/DNSUtil.java b/src/main/java/de/bixilon/minosoft/util/DNSUtil.java index 48e58d6c9..761b11c75 100644 --- a/src/main/java/de/bixilon/minosoft/util/DNSUtil.java +++ b/src/main/java/de/bixilon/minosoft/util/DNSUtil.java @@ -18,6 +18,7 @@ import org.xbill.DNS.Record; import org.xbill.DNS.*; import java.util.LinkedList; +import java.util.Locale; public final class DNSUtil { @@ -53,7 +54,6 @@ public final class DNSUtil { public static String correctHostName(String hostname) { // replaces invalid chars to avoid copy and paste issues (like spaces, ...) - hostname = hostname.replaceAll("\\s", ""); - return hostname.toLowerCase(); + return hostname.replaceAll("\\s+|((https|http):/{2})+|/", "").toLowerCase(Locale.ROOT); } }