diff --git a/README.md b/README.md index 158e6a99c..1192d4b48 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ViaVersion 0.5.2 +# ViaVersion 0.5.3 **Allows the connection of 1.9 clients to 1.8** This plugin modifies netty to allow connection of 1.9 clients to 1.8, diff --git a/pom.xml b/pom.xml index 4708fba79..03c147c6f 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ us.myles ViaVersion - 0.5.2 + 0.5.3 ViaVersion-${project.version} diff --git a/src/main/java/us/myles/ViaVersion/CancelException.java b/src/main/java/us/myles/ViaVersion/CancelException.java index 401657ac2..2df4923b7 100644 --- a/src/main/java/us/myles/ViaVersion/CancelException.java +++ b/src/main/java/us/myles/ViaVersion/CancelException.java @@ -1,4 +1,4 @@ package us.myles.ViaVersion; -public class CancelException extends Exception{ +public class CancelException extends Exception { } diff --git a/src/main/java/us/myles/ViaVersion/ConnectionInfo.java b/src/main/java/us/myles/ViaVersion/ConnectionInfo.java index 1ee032a6b..e13bc1fff 100644 --- a/src/main/java/us/myles/ViaVersion/ConnectionInfo.java +++ b/src/main/java/us/myles/ViaVersion/ConnectionInfo.java @@ -14,6 +14,7 @@ public class ConnectionInfo { private Object lastPacket; private java.util.UUID UUID; private State state = State.HANDSHAKE; + private String openWindow; private int protocol = 0; private int compression = 0; private boolean active = true; @@ -87,4 +88,16 @@ public class ConnectionInfo { } }); } + + public String getOpenWindow() { + return openWindow; + } + + public void setOpenWindow(String openWindow) { + this.openWindow = openWindow; + } + + public void closeWindow() { + this.openWindow = null; + } } diff --git a/src/main/java/us/myles/ViaVersion/transformers/IncomingTransformer.java b/src/main/java/us/myles/ViaVersion/transformers/IncomingTransformer.java index 3415e548a..05e0d91e2 100644 --- a/src/main/java/us/myles/ViaVersion/transformers/IncomingTransformer.java +++ b/src/main/java/us/myles/ViaVersion/transformers/IncomingTransformer.java @@ -136,6 +136,9 @@ public class IncomingTransformer { ItemSlotRewriter.rewrite1_9To1_8(input, output); return; } + if (packet == PacketType.PLAY_CLOSE_WINDOW_REQUEST) { + info.closeWindow(); + } if (packet == PacketType.PLAY_CLIENT_SETTINGS) { String locale = PacketUtil.readString(input); PacketUtil.writeString(locale, output); diff --git a/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java b/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java index 09564fffe..ef0fe1847 100644 --- a/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java +++ b/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java @@ -411,14 +411,23 @@ public class OutgoingTransformer { if (packet == PacketType.PLAY_OPEN_WINDOW) { int windowId = input.readUnsignedByte(); String type = readString(input); + info.setOpenWindow(type); String windowTitle = readString(input); output.writeByte(windowId); writeString(type, output); writeString(fixJson(windowTitle), output); + int slots = input.readUnsignedByte(); + if(type.equals("minecraft:brewing_stand")){ + slots = slots + 1; // new slot + } + output.writeByte(slots); output.writeBytes(input); return; } + if (packet == PacketType.PLAY_CLOSE_WINDOW) { + info.closeWindow(); + } if (packet == PacketType.PLAY_SET_SLOT) { int windowId = input.readUnsignedByte(); output.writeByte(windowId);