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);