From 4d929f8a2c980e402f1460c22ce8d3a3605d38e1 Mon Sep 17 00:00:00 2001 From: Valaphee The Meerkat <32491319+valaphee@users.noreply.github.com> Date: Sun, 30 Apr 2023 03:41:14 +0200 Subject: [PATCH] =?UTF-8?q?Replace=20=C2=A7=20in=20sign=20text=20and=20boo?= =?UTF-8?q?k=20editing=20operations=20(#3721)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BedrockBlockEntityDataTranslator.java | 2 ++ .../bedrock/BedrockBookEditTranslator.java | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBlockEntityDataTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBlockEntityDataTranslator.java index 145cea805..a26bba618 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBlockEntityDataTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBlockEntityDataTranslator.java @@ -34,6 +34,7 @@ import org.geysermc.geyser.network.GameProtocol; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.protocol.PacketTranslator; import org.geysermc.geyser.translator.protocol.Translator; +import org.geysermc.geyser.translator.text.MessageTranslator; import org.geysermc.geyser.util.SignUtils; @Translator(packet = BlockEntityDataPacket.class) @@ -52,6 +53,7 @@ public class BedrockBlockEntityDataTranslator extends PacketTranslator for (int i = pages.size(); i < page; i++) { pages.add(i, new StringTag("", "")); } - pages.add(page, new StringTag("", packet.getText())); + pages.add(page, new StringTag("", MessageTranslator.convertToPlainText(packet.getText()))); break; } // Called whenever a page is modified case REPLACE_PAGE: { if (page < pages.size()) { - pages.set(page, new StringTag("", packet.getText())); + pages.set(page, new StringTag("", MessageTranslator.convertToPlainText(packet.getText()))); } else { // Add empty pages in between for (int i = pages.size(); i < page; i++) { pages.add(i, new StringTag("", "")); } - pages.add(page, new StringTag("", packet.getText())); + pages.add(page, new StringTag("", MessageTranslator.convertToPlainText(packet.getText()))); } break; } @@ -98,8 +99,8 @@ public class BedrockBookEditTranslator extends PacketTranslator break; } case SIGN_BOOK: { - tag.put(new StringTag("author", packet.getAuthor())); - tag.put(new StringTag("title", packet.getTitle())); + tag.put(new StringTag("author", MessageTranslator.convertToPlainText(packet.getAuthor()))); + tag.put(new StringTag("title", MessageTranslator.convertToPlainText(packet.getTitle()))); break; } default: @@ -127,12 +128,11 @@ public class BedrockBookEditTranslator extends PacketTranslator String title; if (packet.getAction() == BookEditPacket.Action.SIGN_BOOK) { // Add title to packet so the server knows we're signing - if (packet.getTitle().getBytes(StandardCharsets.UTF_8).length > MAXIMUM_TITLE_LENGTH) { + title = MessageTranslator.convertToPlainText(packet.getTitle()); + if (title.getBytes(StandardCharsets.UTF_8).length > MAXIMUM_TITLE_LENGTH) { session.getGeyser().getLogger().warning("Book title larger than server allows!"); return; } - - title = packet.getTitle(); } else { title = null; }