diff --git a/README.md b/README.md index d45e9ae53..1e9b8b404 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ViaVersion 0.4.5 +# ViaVersion 0.4.6 **Allows the connection of 1.8 clients to 1.9** This plugin modifies netty to allow connection of 1.9 clients to 1.8, diff --git a/src/main/java/us/myles/ViaVersion/metadata/MetadataRewriter.java b/src/main/java/us/myles/ViaVersion/metadata/MetadataRewriter.java index 7a4d6770d..1dad62f05 100644 --- a/src/main/java/us/myles/ViaVersion/metadata/MetadataRewriter.java +++ b/src/main/java/us/myles/ViaVersion/metadata/MetadataRewriter.java @@ -86,7 +86,10 @@ public class MetadataRewriter { PacketUtil.writeString((String) value, output); break; case Boolean: - output.writeBoolean(((Byte) value).byteValue() != 0); + if(metaIndex == MetaIndex.AGEABLE_AGE) + output.writeBoolean(((Byte) value).byteValue() < 0); + else + output.writeBoolean(((Byte) value).byteValue() != 0); break; case Slot: PacketUtil.writeItem(value, output); diff --git a/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java b/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java index 8957365f7..667d50be3 100644 --- a/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java +++ b/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java @@ -34,6 +34,7 @@ public class OutgoingTransformer { private boolean cancel = false; private Map uuidMap = new HashMap(); private Map clientEntityTypes = new HashMap(); + private Map vehicleMap = new HashMap<>(); public OutgoingTransformer(ConnectionInfo info) { this.info = info; @@ -82,8 +83,17 @@ public class OutgoingTransformer { if (!lead) { output.clear(); writeVarInt(PacketType.PLAY_SET_PASSENGERS.getNewPacketID(), output); - writeVarInt(vehicle, output); - writeVarIntArray(Collections.singletonList(passenger), output); + if (vehicle == -1) { + if (!vehicleMap.containsKey(passenger)) + throw new CancelException(); + vehicle = vehicleMap.remove(passenger); + writeVarInt(vehicle,output); + writeVarIntArray(Collections.emptyList(), output); + } else{ + writeVarInt(vehicle, output); + writeVarIntArray(Collections.singletonList(passenger), output); + vehicleMap.put(passenger,vehicle); + } return; } output.writeInt(passenger); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 59982eef5..3f3eaa8a2 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: ViaVersion main: us.myles.ViaVersion.ViaVersionPlugin author: _MylesC -version: 0.4.5 +version: 0.4.6 load: startup loadbefore: [ProtocolLib, ProxyPipe] \ No newline at end of file