From 7831dc0082a4b19515ad320f59f29ee31f18fc61 Mon Sep 17 00:00:00 2001 From: Mats Date: Tue, 1 Mar 2016 14:25:26 +0100 Subject: [PATCH 1/3] Fix MalformedJsonException on Kick / Disconnect --- .../ViaVersion/transformers/OutgoingTransformer.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java b/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java index 4a293ecc6..0121652b2 100644 --- a/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java +++ b/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java @@ -25,6 +25,9 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.*; +import static us.myles.ViaVersion.PacketUtil.readString; +import static us.myles.ViaVersion.PacketUtil.writeString; + public class OutgoingTransformer { private static Gson gson = new Gson(); private final Channel channel; @@ -78,6 +81,13 @@ public class OutgoingTransformer { output.writeInt(target); return; } + if (packet == PacketType.PLAY_DISCONNECT){ + String reason = readString(input); + if (reason.startsWith("\"")) + reason = "{\"text\":" + reason + "}"; + writeString(reason,output); + return; + } if (packet == PacketType.PLAY_ENTITY_TELEPORT) { // Port this so that it relative moves :P int id = PacketUtil.readVarInt(input); From 6f25090c014a14763f4fcbf79bbe06cae455e3d1 Mon Sep 17 00:00:00 2001 From: Mats Date: Tue, 1 Mar 2016 15:28:17 +0100 Subject: [PATCH 2/3] Fixed riding on entities. --- .../java/us/myles/ViaVersion/PacketUtil.java | 7 +++++++ .../transformers/IncomingTransformer.java | 2 +- .../transformers/OutgoingTransformer.java | 19 +++++++++++++------ 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/java/us/myles/ViaVersion/PacketUtil.java b/src/main/java/us/myles/ViaVersion/PacketUtil.java index f7c0e89d3..cacd6929a 100644 --- a/src/main/java/us/myles/ViaVersion/PacketUtil.java +++ b/src/main/java/us/myles/ViaVersion/PacketUtil.java @@ -184,6 +184,13 @@ public class PacketUtil { } } + public static void writeVarIntArray(List integers, ByteBuf output) { + writeVarInt(integers.size(),output); + for (Integer i : integers){ + writeVarInt(i,output); + } + } + public static int readVarShort(ByteBuf buf) { int low = buf.readUnsignedShort(); int high = 0; diff --git a/src/main/java/us/myles/ViaVersion/transformers/IncomingTransformer.java b/src/main/java/us/myles/ViaVersion/transformers/IncomingTransformer.java index 7cfb5836a..5ef68334f 100644 --- a/src/main/java/us/myles/ViaVersion/transformers/IncomingTransformer.java +++ b/src/main/java/us/myles/ViaVersion/transformers/IncomingTransformer.java @@ -36,7 +36,7 @@ public class IncomingTransformer { // if (packet != PacketType.PLAY_PLAYER_POSITION_LOOK_REQUEST && packet != PacketType.PLAY_KEEP_ALIVE_REQUEST && packet != PacketType.PLAY_PLAYER_POSITION_REQUEST && packet != PacketType.PLAY_PLAYER_LOOK_REQUEST) { // System.out.println("Packet Type: " + packet + " New ID: " + packetID + " Original: " + original); // } - if (packet == PacketType.PLAY_TP_CONFIRM) { + if (packet == PacketType.PLAY_TP_CONFIRM || packet == PacketType.PLAY_VEHICLE_MOVE_REQUEST) { //TODO handle client-sided horse riding throw new CancelException(); } PacketUtil.writeVarInt(packetID, output); diff --git a/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java b/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java index 0121652b2..20ae8fd10 100644 --- a/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java +++ b/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java @@ -25,8 +25,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.*; -import static us.myles.ViaVersion.PacketUtil.readString; -import static us.myles.ViaVersion.PacketUtil.writeString; +import static us.myles.ViaVersion.PacketUtil.*; public class OutgoingTransformer { private static Gson gson = new Gson(); @@ -75,10 +74,18 @@ public class OutgoingTransformer { output.writeBytes(input); } if (packet == PacketType.PLAY_ATTACH_ENTITY) { - int id = input.readInt(); - output.writeInt(id); - int target = input.readInt(); - output.writeInt(target); + int passenger = input.readInt(); + int vehicle = input.readInt(); + boolean lead = input.readBoolean(); + if (!lead){ + output.clear(); + writeVarInt(PacketType.PLAY_SET_PASSENGERS.getNewPacketID(),output); + writeVarInt(vehicle,output); + writeVarIntArray(Collections.singletonList(passenger),output); + return; + } + output.writeInt(passenger); + output.writeInt(vehicle); return; } if (packet == PacketType.PLAY_DISCONNECT){ From 2a6730164236e0a0ebd9a70bedc9f44154a90c63 Mon Sep 17 00:00:00 2001 From: Myles Date: Tue, 1 Mar 2016 14:40:53 +0000 Subject: [PATCH 3/3] Bump version to 0.3.3 --- README.md | 11 +++++++---- src/main/resources/plugin.yml | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f334a9a1f..1d23ee72c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ViaVersion 0.3.2 +# ViaVersion 0.3.3 **Allows the connection of 1.8 clients to 1.9** This plugin modifies netty to allow connection of 1.9 clients to 1.8, @@ -20,18 +20,21 @@ Some items with JSON data cause crashing due to the change in how strict minecra This took hours of work, so if you enjoy this consider looking into contacting me and supporting my projects. -Credits: +Sources: -------- **wiki.vg** (Protocol info, though I did have to find a lot myself) **MCProtocolLib** (used for chunk reading & some of writing.) +Contributors: +-------- + **Myself** (harhar) -**Matsv** (Movement Fix / Correcting my stupidity) +**Matsv/StatBoom** -**HugoDaBosss** (Sounds fix) +**HugoDaBosss** License: -------- diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index faa32b51f..4dcca77dc 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,4 +1,4 @@ name: ViaVersion main: us.myles.ViaVersion.Core author: _MylesC -version: 0.3.2 \ No newline at end of file +version: 0.3.3 \ No newline at end of file