From 747139cad11dfc580ec775d63aa66b428254e74c Mon Sep 17 00:00:00 2001 From: bixilon Date: Mon, 15 Jun 2020 17:32:07 +0200 Subject: [PATCH] debugUi: replace TextAre with TextFlow --- .../minosoft/debug/gui/DebugMainWindow.java | 4 --- .../debug/handling/DebugUIHandler.java | 14 +++++--- .../debug/handling/DebugUIPacketHandler.java | 2 +- .../game/datatypes/TextComponent.java | 4 --- .../login/PacketLoginDisconnect.java | 2 +- .../clientbound/play/PacketChatMessage.java | 4 +-- .../clientbound/play/PacketDisconnect.java | 2 +- .../protocol/protocol/InByteBuffer.java | 6 ++-- src/main/resources/layout/debug/main.fxml | 36 ++++++++++--------- 9 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/debug/gui/DebugMainWindow.java b/src/main/java/de/bixilon/minosoft/debug/gui/DebugMainWindow.java index 9b1f6ad1a..87020f72c 100644 --- a/src/main/java/de/bixilon/minosoft/debug/gui/DebugMainWindow.java +++ b/src/main/java/de/bixilon/minosoft/debug/gui/DebugMainWindow.java @@ -16,10 +16,8 @@ package de.bixilon.minosoft.debug.gui; import de.bixilon.minosoft.debug.handling.DebugUIHandler; import de.bixilon.minosoft.protocol.network.Connection; import javafx.application.Application; -import javafx.beans.value.ChangeListener; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; -import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.image.Image; import javafx.scene.input.KeyCode; @@ -64,8 +62,6 @@ public class DebugMainWindow extends Application { stage.getIcons().add(new Image(DebugMainWindow.class.getResourceAsStream("/icons/windowIcon.png"))); stage.show(); - // autoscroll for chat - ((TextArea) scene.lookup("#chat")).textProperty().addListener((ChangeListener) (observableValue, o, t1) -> ((TextArea) scene.lookup("#chat")).setScrollTop(Double.MAX_VALUE)); // listen for enter in text field TextField chatToSend = ((TextField) scene.lookup("#chatToSend")); chatToSend.setOnKeyPressed(event -> { diff --git a/src/main/java/de/bixilon/minosoft/debug/handling/DebugUIHandler.java b/src/main/java/de/bixilon/minosoft/debug/handling/DebugUIHandler.java index 996e12c8a..c764bf886 100644 --- a/src/main/java/de/bixilon/minosoft/debug/handling/DebugUIHandler.java +++ b/src/main/java/de/bixilon/minosoft/debug/handling/DebugUIHandler.java @@ -15,7 +15,9 @@ package de.bixilon.minosoft.debug.handling; import de.bixilon.minosoft.debug.gui.DebugMainWindow; import de.bixilon.minosoft.game.datatypes.TextComponent; -import javafx.scene.control.TextArea; +import javafx.application.Platform; +import javafx.scene.text.Text; +import javafx.scene.text.TextFlow; import java.util.ArrayList; import java.util.List; @@ -25,19 +27,21 @@ public class DebugUIHandler { public void printText(TextComponent component) { if (DebugMainWindow.isInitialized()) { - TextArea chat = ((TextArea) DebugMainWindow.getStage().getScene().lookup("#chat")); - chat.appendText((chat.getText().isBlank() ? "" : "\n") + component.getRawMessage()); + TextFlow chat = ((TextFlow) DebugMainWindow.getStage().getScene().lookup("#chat")); + Platform.runLater( + () -> chat.getChildren().add(new Text(component.getRawMessage() + "\n")) + ); } else { toPrint.add(component); } } public void printTextLeft() { - TextArea chat = ((TextArea) DebugMainWindow.getStage().getScene().lookup("#chat")); + TextFlow chat = ((TextFlow) DebugMainWindow.getStage().getScene().lookup("#chat")); if (toPrint != null) { // append here for (TextComponent toDoComponent : toPrint) { - chat.appendText((chat.getText().isBlank() ? "" : "\n") + toDoComponent.getRawMessage()); + chat.getChildren().add(new Text(toDoComponent.getRawMessage() + "\n")); } toPrint = null; } diff --git a/src/main/java/de/bixilon/minosoft/debug/handling/DebugUIPacketHandler.java b/src/main/java/de/bixilon/minosoft/debug/handling/DebugUIPacketHandler.java index 11d97c7e9..226f8ff23 100644 --- a/src/main/java/de/bixilon/minosoft/debug/handling/DebugUIPacketHandler.java +++ b/src/main/java/de/bixilon/minosoft/debug/handling/DebugUIPacketHandler.java @@ -26,7 +26,7 @@ public class DebugUIPacketHandler extends PacketHandler { @Override public void handle(PacketChatMessage pkg) { - window.getUIHandler().printText(pkg.getChatComponent()); + window.getUIHandler().printText(pkg.getTextComponent()); } } diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/TextComponent.java b/src/main/java/de/bixilon/minosoft/game/datatypes/TextComponent.java index 72220a0cd..5f4840959 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/TextComponent.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/TextComponent.java @@ -34,7 +34,6 @@ public class TextComponent { this.json = json; } - //ToDo public String getRawMessage() { if (json.has("text") && json.getString("text").length() != 0) { return json.getString("text"); @@ -187,9 +186,6 @@ public class TextComponent { } public String getPrefix() { - if (prefix == null) { - return color.getPrefix(); - } return prefix; } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketLoginDisconnect.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketLoginDisconnect.java index a86448845..a1c6c4c27 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketLoginDisconnect.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketLoginDisconnect.java @@ -25,7 +25,7 @@ public class PacketLoginDisconnect implements ClientboundPacket { @Override public void read(InPacketBuffer buffer, ProtocolVersion v) { - reason = buffer.readChatComponent(); + reason = buffer.readTextComponent(); } @Override diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketChatMessage.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketChatMessage.java index 2a431dffb..310cff345 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketChatMessage.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketChatMessage.java @@ -28,7 +28,7 @@ public class PacketChatMessage implements ClientboundPacket { public void read(InPacketBuffer buffer, ProtocolVersion v) { switch (v) { case VERSION_1_7_10: - c = buffer.readChatComponent(); + c = buffer.readTextComponent(); break; } } @@ -38,7 +38,7 @@ public class PacketChatMessage implements ClientboundPacket { Log.game(String.format("[CHAT] %s", c.getColoredMessage())); } - public TextComponent getChatComponent() { + public TextComponent getTextComponent() { return c; } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketDisconnect.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketDisconnect.java index 489ec2f1b..b5aa77015 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketDisconnect.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketDisconnect.java @@ -28,7 +28,7 @@ public class PacketDisconnect implements ClientboundPacket { public void read(InPacketBuffer buffer, ProtocolVersion v) { switch (v) { case VERSION_1_7_10: - reason = buffer.readChatComponent(); + reason = buffer.readTextComponent(); break; } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.java index 552aa71df..9f6c059f0 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.java @@ -13,15 +13,15 @@ package de.bixilon.minosoft.protocol.protocol; -import de.bixilon.minosoft.game.datatypes.world.BlockPosition; -import de.bixilon.minosoft.game.datatypes.TextComponent; import de.bixilon.minosoft.game.datatypes.Direction; import de.bixilon.minosoft.game.datatypes.Slot; +import de.bixilon.minosoft.game.datatypes.TextComponent; import de.bixilon.minosoft.game.datatypes.entities.Pose; import de.bixilon.minosoft.game.datatypes.particle.BlockParticle; import de.bixilon.minosoft.game.datatypes.particle.OtherParticles; import de.bixilon.minosoft.game.datatypes.particle.Particle; import de.bixilon.minosoft.game.datatypes.particle.Particles; +import de.bixilon.minosoft.game.datatypes.world.BlockPosition; import de.bixilon.minosoft.nbt.tag.CompoundTag; import de.bixilon.minosoft.nbt.tag.TagTypes; import de.bixilon.minosoft.util.Util; @@ -187,7 +187,7 @@ public class InByteBuffer { return "dataLen: " + bytes.length + "; pos: " + pos; } - public TextComponent readChatComponent() { + public TextComponent readTextComponent() { return new TextComponent(readString()); } diff --git a/src/main/resources/layout/debug/main.fxml b/src/main/resources/layout/debug/main.fxml index 0b8e1239b..10c5eb819 100644 --- a/src/main/resources/layout/debug/main.fxml +++ b/src/main/resources/layout/debug/main.fxml @@ -1,23 +1,27 @@ - + + + - - - - - -