From 90460ee99fcc5061a59af858e2821f70bdb12040 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Fri, 8 Jul 2022 21:07:57 +0200 Subject: [PATCH] 1.19.1-pre4 --- build.gradle.kts | 2 +- .../Protocol1_18_2To1_19_1.java | 41 +++++++++++++------ gradle/libs.versions.toml | 2 +- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0a29b471..9ab10d1d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { allprojects { group = "com.viaversion" - version = "4.4.0-1.19.1-pre3-SNAPSHOT" + version = "4.4.0-1.19.1-pre4-SNAPSHOT" description = "Allow older clients to join newer server versions." } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19_1/Protocol1_18_2To1_19_1.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19_1/Protocol1_18_2To1_19_1.java index 2ecd8ba1..acf340a4 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19_1/Protocol1_18_2To1_19_1.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19_1/Protocol1_18_2To1_19_1.java @@ -198,28 +198,44 @@ public final class Protocol1_18_2To1_19_1 extends BackwardsProtocol { + if (wrapper.read(Type.BOOLEAN)) { + // Previous signature + wrapper.read(Type.BYTE_ARRAY_PRIMITIVE); + } + + final UUID sender = wrapper.read(Type.UUID); + wrapper.read(Type.BYTE_ARRAY_PRIMITIVE); // Header signature + // Send the unsigned message if present, otherwise the signed message final JsonElement message = wrapper.read(Type.COMPONENT); + + wrapper.read(Type.LONG); // Timestamp + wrapper.read(Type.LONG); // Salt + + final int lastSeenPlayers = wrapper.read(Type.VAR_INT); + for (int i = 0; i < lastSeenPlayers; i++) { + wrapper.read(Type.UUID); // Profile uuid + wrapper.read(Type.BYTE_ARRAY_PRIMITIVE); // Last signature + } + final JsonElement unsignedMessage = wrapper.read(Type.OPTIONAL_COMPONENT); - wrapper.write(Type.COMPONENT, unsignedMessage != null ? unsignedMessage : message); - }); - handler(wrapper -> { + final JsonElement chatMessage = unsignedMessage != null ? unsignedMessage : message; + wrapper.write(Type.COMPONENT, chatMessage); + final int chatTypeId = wrapper.read(Type.VAR_INT); wrapper.write(Type.BYTE, (byte) 1); - wrapper.passthrough(Type.UUID); + wrapper.write(Type.UUID, sender); + final JsonElement senderName = wrapper.read(Type.COMPONENT); final JsonElement targetName = wrapper.read(Type.OPTIONAL_COMPONENT); - final JsonElement element = wrapper.get(Type.COMPONENT, 0); - final JsonElement decoratedMessage = decorateChatMessage(wrapper, chatTypeId, senderName, targetName, element); + final JsonElement decoratedMessage = decorateChatMessage(wrapper, chatTypeId, senderName, targetName, chatMessage); if (decoratedMessage == null) { wrapper.cancel(); } else { wrapper.set(Type.COMPONENT, 0, decoratedMessage); } }); - read(Type.LONG); // Timestamp - read(Type.LONG); // Salt - read(Type.BYTE_ARRAY_PRIMITIVE); // Signature + } }); @@ -293,8 +309,9 @@ public final class Protocol1_18_2To1_19_1 extends BackwardsProtocol