diff --git a/.mvn/jvm.config b/.mvn/jvm.config
deleted file mode 100644
index e2a50e08..00000000
--- a/.mvn/jvm.config
+++ /dev/null
@@ -1 +0,0 @@
---add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
\ No newline at end of file
diff --git a/1_10_R1/pom.xml b/1_10_R1/pom.xml
index eb7c45d5..467fd507 100644
--- a/1_10_R1/pom.xml
+++ b/1_10_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_10_R1
diff --git a/1_10_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_10_R1.java b/1_10_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_10_R1.java
index 9f99272b..a45989d4 100644
--- a/1_10_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_10_R1.java
+++ b/1_10_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_10_R1.java
@@ -50,6 +50,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_11_R1/pom.xml b/1_11_R1/pom.xml
index 37283fbd..5e64d41d 100644
--- a/1_11_R1/pom.xml
+++ b/1_11_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_11_R1
diff --git a/1_11_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_11_R1.java b/1_11_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_11_R1.java
index 6680ad7c..c6bf9c1d 100644
--- a/1_11_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_11_R1.java
+++ b/1_11_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_11_R1.java
@@ -50,6 +50,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_12_R1/pom.xml b/1_12_R1/pom.xml
index 4f88d038..0cb52dfe 100644
--- a/1_12_R1/pom.xml
+++ b/1_12_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_12_R1
diff --git a/1_12_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_12_R1.java b/1_12_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_12_R1.java
index 4a9d8aab..4324fd92 100644
--- a/1_12_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_12_R1.java
+++ b/1_12_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_12_R1.java
@@ -50,6 +50,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_13_R1/pom.xml b/1_13_R1/pom.xml
index 18e50d79..112dc4b3 100644
--- a/1_13_R1/pom.xml
+++ b/1_13_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_13_R1
diff --git a/1_13_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_13_R1.java b/1_13_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_13_R1.java
index 4e7ad696..9d78659b 100644
--- a/1_13_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_13_R1.java
+++ b/1_13_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_13_R1.java
@@ -50,6 +50,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_13_R2/pom.xml b/1_13_R2/pom.xml
index 262d8aaf..b206ceea 100644
--- a/1_13_R2/pom.xml
+++ b/1_13_R2/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_13_R2
diff --git a/1_13_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_13_R2.java b/1_13_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_13_R2.java
index de8f3d36..4972b541 100644
--- a/1_13_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_13_R2.java
+++ b/1_13_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_13_R2.java
@@ -50,6 +50,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_14_4_R1/pom.xml b/1_14_4_R1/pom.xml
index 5eb69477..510bf5d3 100644
--- a/1_14_4_R1/pom.xml
+++ b/1_14_4_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_14_4_R1
diff --git a/1_14_R1/pom.xml b/1_14_R1/pom.xml
index 5a9c10c8..a9a25eec 100644
--- a/1_14_R1/pom.xml
+++ b/1_14_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_14_R1
diff --git a/1_14_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_14_R1.java b/1_14_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_14_R1.java
index e2912a2d..8f55d1d2 100644
--- a/1_14_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_14_R1.java
+++ b/1_14_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_14_R1.java
@@ -56,6 +56,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_15_R1/pom.xml b/1_15_R1/pom.xml
index 3cf08f2e..7c3a51ab 100644
--- a/1_15_R1/pom.xml
+++ b/1_15_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_15_R1
diff --git a/1_15_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_15_R1.java b/1_15_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_15_R1.java
index 7363ca36..2dc25064 100644
--- a/1_15_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_15_R1.java
+++ b/1_15_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_15_R1.java
@@ -47,6 +47,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_16_R1/pom.xml b/1_16_R1/pom.xml
index aabfc850..fabf3a4d 100644
--- a/1_16_R1/pom.xml
+++ b/1_16_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_16_R1
diff --git a/1_16_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R1.java b/1_16_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R1.java
index 43c84aec..fb7f4a30 100644
--- a/1_16_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R1.java
+++ b/1_16_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R1.java
@@ -47,6 +47,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_16_R2/pom.xml b/1_16_R2/pom.xml
index 0f03f6a6..c5576e4e 100644
--- a/1_16_R2/pom.xml
+++ b/1_16_R2/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_16_R2
diff --git a/1_16_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R2.java b/1_16_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R2.java
index 4f0a3cf3..ee2795f0 100644
--- a/1_16_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R2.java
+++ b/1_16_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R2.java
@@ -47,6 +47,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_16_R3/pom.xml b/1_16_R3/pom.xml
index 7b9e241f..3594a1d2 100644
--- a/1_16_R3/pom.xml
+++ b/1_16_R3/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_16_R3
diff --git a/1_16_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R3.java b/1_16_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R3.java
index a2416d3a..33d645ec 100644
--- a/1_16_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R3.java
+++ b/1_16_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_16_R3.java
@@ -47,6 +47,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_17_1_R1/pom.xml b/1_17_1_R1/pom.xml
index 72c265eb..d7a3306d 100644
--- a/1_17_1_R1/pom.xml
+++ b/1_17_1_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_17_1_R1
diff --git a/1_17_R1/pom.xml b/1_17_R1/pom.xml
index 105e2321..ff6ba912 100644
--- a/1_17_R1/pom.xml
+++ b/1_17_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_17_R1
diff --git a/1_17_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_17_R1.java b/1_17_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_17_R1.java
index ca4b0b17..a6e598c2 100644
--- a/1_17_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_17_R1.java
+++ b/1_17_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_17_R1.java
@@ -4,6 +4,7 @@
import net.minecraft.network.chat.ChatComponentText;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -62,6 +63,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).b.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).b.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_18_R1/pom.xml b/1_18_R1/pom.xml
index 36fc4a31..a2d0d39c 100644
--- a/1_18_R1/pom.xml
+++ b/1_18_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_18_R1
diff --git a/1_18_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_18_R1.java b/1_18_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_18_R1.java
index a03169af..7083c114 100644
--- a/1_18_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_18_R1.java
+++ b/1_18_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_18_R1.java
@@ -4,6 +4,7 @@
import net.minecraft.network.chat.ChatComponentText;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -51,6 +52,11 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).b.a(new PacketPlayOutCloseWindow(containerId));
}
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).b.a(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
@Override
public void setActiveContainerDefault(Player player) {
(toNMS(player)).bW = (toNMS(player)).bV;
diff --git a/1_18_R2/pom.xml b/1_18_R2/pom.xml
index 20cab821..a86ac598 100644
--- a/1_18_R2/pom.xml
+++ b/1_18_R2/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_18_R2
diff --git a/1_18_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_18_R2.java b/1_18_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_18_R2.java
index 47a7315e..8120a978 100644
--- a/1_18_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_18_R2.java
+++ b/1_18_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_18_R2.java
@@ -4,6 +4,7 @@
import net.minecraft.network.chat.ChatComponentText;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -51,6 +52,11 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).b.a(new PacketPlayOutCloseWindow(containerId));
}
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).b.a(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
@Override
public void setActiveContainerDefault(Player player) {
(toNMS(player)).bV = (toNMS(player)).bU;
diff --git a/1_19_1_R1/pom.xml b/1_19_1_R1/pom.xml
index bd03c87b..03e33810 100644
--- a/1_19_1_R1/pom.xml
+++ b/1_19_1_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_19_1_R1
diff --git a/1_19_R1/pom.xml b/1_19_R1/pom.xml
index 30dedb35..47f45128 100644
--- a/1_19_R1/pom.xml
+++ b/1_19_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_19_R1
diff --git a/1_19_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R1.java b/1_19_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R1.java
index eb52a900..6378d1c3 100644
--- a/1_19_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R1.java
+++ b/1_19_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R1.java
@@ -3,6 +3,7 @@
import net.minecraft.core.BlockPosition;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -58,6 +59,11 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).b.a(new PacketPlayOutCloseWindow(containerId));
}
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).b.a(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
@Override
public void setActiveContainerDefault(Player player) {
toNMS(player).bU = toNMS(player).bT;
diff --git a/1_19_R2/pom.xml b/1_19_R2/pom.xml
index d139cbf0..6708802f 100644
--- a/1_19_R2/pom.xml
+++ b/1_19_R2/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_19_R2
diff --git a/1_19_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R2.java b/1_19_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R2.java
index b0cb14f1..746eb531 100644
--- a/1_19_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R2.java
+++ b/1_19_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R2.java
@@ -3,6 +3,7 @@
import net.minecraft.core.BlockPosition;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -50,6 +51,11 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).b.a(new PacketPlayOutCloseWindow(containerId));
}
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).b.a(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
@Override
public void setActiveContainerDefault(Player player) {
toNMS(player).bU = toNMS(player).bT;
diff --git a/1_19_R3/pom.xml b/1_19_R3/pom.xml
index 3b5cfe67..90861be3 100644
--- a/1_19_R3/pom.xml
+++ b/1_19_R3/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_19_R3
diff --git a/1_19_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R3.java b/1_19_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R3.java
index cb2f2b66..77944691 100644
--- a/1_19_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R3.java
+++ b/1_19_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_19_R3.java
@@ -3,6 +3,7 @@
import net.minecraft.core.BlockPosition;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -50,6 +51,11 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).b.a(new PacketPlayOutCloseWindow(containerId));
}
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).b.a(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
@Override
public void setActiveContainerDefault(Player player) {
toNMS(player).bP = toNMS(player).bO;
diff --git a/1_20_R1/pom.xml b/1_20_R1/pom.xml
index d78b67a7..66977962 100644
--- a/1_20_R1/pom.xml
+++ b/1_20_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_20_R1
diff --git a/1_20_R1/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R1.java b/1_20_R1/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R1.java
index 03fbfc64..d2230a72 100644
--- a/1_20_R1/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R1.java
+++ b/1_20_R1/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R1.java
@@ -3,6 +3,7 @@
import net.minecraft.core.BlockPosition;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -50,6 +51,11 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).c.a(new PacketPlayOutCloseWindow(containerId));
}
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).c.a(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
@Override
public void setActiveContainerDefault(Player player) {
toNMS(player).bR = toNMS(player).bQ;
diff --git a/1_20_R2/pom.xml b/1_20_R2/pom.xml
index 8fad56c2..6bc66770 100644
--- a/1_20_R2/pom.xml
+++ b/1_20_R2/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_20_R2
diff --git a/1_20_R2/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R2.java b/1_20_R2/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R2.java
index fdc2db94..a554008e 100644
--- a/1_20_R2/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R2.java
+++ b/1_20_R2/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R2.java
@@ -3,6 +3,7 @@
import net.minecraft.core.BlockPosition;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -50,6 +51,11 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).c.b(new PacketPlayOutCloseWindow(containerId));
}
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).c.b(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
@Override
public void setActiveContainerDefault(Player player) {
toNMS(player).bS = toNMS(player).bR;
diff --git a/1_20_R3/pom.xml b/1_20_R3/pom.xml
index 9dda794b..b658099a 100644
--- a/1_20_R3/pom.xml
+++ b/1_20_R3/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_20_R3
diff --git a/1_20_R3/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R3.java b/1_20_R3/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R3.java
index 1f51101a..c37ed3db 100644
--- a/1_20_R3/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R3.java
+++ b/1_20_R3/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R3.java
@@ -3,6 +3,7 @@
import net.minecraft.core.BlockPosition;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -50,6 +51,11 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).c.b(new PacketPlayOutCloseWindow(containerId));
}
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).c.b(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
@Override
public void setActiveContainerDefault(Player player) {
toNMS(player).bS = toNMS(player).bR;
diff --git a/1_20_R4/pom.xml b/1_20_R4/pom.xml
index 326d868f..0c82881a 100644
--- a/1_20_R4/pom.xml
+++ b/1_20_R4/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_20_R4
diff --git a/1_20_R4/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R4.java b/1_20_R4/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R4.java
index 2d9e61a2..3762508c 100644
--- a/1_20_R4/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R4.java
+++ b/1_20_R4/src/main/java/net.wesjd.anvilgui.version/Wrapper1_20_R4.java
@@ -5,6 +5,7 @@
import net.minecraft.core.component.DataComponents;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -52,6 +53,11 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).c.b(new PacketPlayOutCloseWindow(containerId));
}
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).c.b(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
@Override
public void setActiveContainerDefault(Player player) {
toNMS(player).cb = toNMS(player).ca; // cb -> containerMenu, ca -> inventoryMenu
diff --git a/1_21_R1/pom.xml b/1_21_R1/pom.xml
index ecc403cd..13ee1591 100644
--- a/1_21_R1/pom.xml
+++ b/1_21_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_21_R1
diff --git a/1_21_R1/src/main/java/net.wesjd.anvilgui.version/Wrapper1_21_R1.java b/1_21_R1/src/main/java/net.wesjd.anvilgui.version/Wrapper1_21_R1.java
index 7857fde0..f9ab284e 100644
--- a/1_21_R1/src/main/java/net.wesjd.anvilgui.version/Wrapper1_21_R1.java
+++ b/1_21_R1/src/main/java/net.wesjd.anvilgui.version/Wrapper1_21_R1.java
@@ -5,6 +5,7 @@
import net.minecraft.core.component.DataComponents;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayOutCloseWindow;
+import net.minecraft.network.protocol.game.PacketPlayOutExperience;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.IInventory;
@@ -52,6 +53,11 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).c.b(new PacketPlayOutCloseWindow(containerId));
}
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).c.b(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
@Override
public void setActiveContainerDefault(Player player) {
toNMS(player).cd = toNMS(player).cc; // cb -> containerMenu, ca -> inventoryMenu
diff --git a/1_7_R4/pom.xml b/1_7_R4/pom.xml
index e1e290a8..7d91f3bb 100644
--- a/1_7_R4/pom.xml
+++ b/1_7_R4/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_7_R4
diff --git a/1_7_R4/src/main/java/net/wesjd/anvilgui/version/Wrapper1_7_R4.java b/1_7_R4/src/main/java/net/wesjd/anvilgui/version/Wrapper1_7_R4.java
index 459d6c71..dd5fff2a 100644
--- a/1_7_R4/src/main/java/net/wesjd/anvilgui/version/Wrapper1_7_R4.java
+++ b/1_7_R4/src/main/java/net/wesjd/anvilgui/version/Wrapper1_7_R4.java
@@ -48,6 +48,14 @@ public void sendPacketCloseWindow(final Player player, final int containerId) {
this.toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(final Player player, final int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_8_R1/pom.xml b/1_8_R1/pom.xml
index f52fdfa4..4d0e7401 100644
--- a/1_8_R1/pom.xml
+++ b/1_8_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_8_R1
diff --git a/1_8_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R1.java b/1_8_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R1.java
index 7688a422..8b814bce 100644
--- a/1_8_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R1.java
+++ b/1_8_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R1.java
@@ -50,6 +50,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_8_R2/pom.xml b/1_8_R2/pom.xml
index 7a72e748..8ec95990 100644
--- a/1_8_R2/pom.xml
+++ b/1_8_R2/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_8_R2
diff --git a/1_8_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R2.java b/1_8_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R2.java
index 290bcdab..a15dbafc 100644
--- a/1_8_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R2.java
+++ b/1_8_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R2.java
@@ -50,6 +50,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_8_R3/pom.xml b/1_8_R3/pom.xml
index 2321b9d9..e9c39233 100644
--- a/1_8_R3/pom.xml
+++ b/1_8_R3/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_8_R3
diff --git a/1_8_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R3.java b/1_8_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R3.java
index c7ef0ea9..ebf50215 100644
--- a/1_8_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R3.java
+++ b/1_8_R3/src/main/java/net/wesjd/anvilgui/version/Wrapper1_8_R3.java
@@ -50,6 +50,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_9_R1/pom.xml b/1_9_R1/pom.xml
index 84d6fe5f..836da289 100644
--- a/1_9_R1/pom.xml
+++ b/1_9_R1/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_9_R1
diff --git a/1_9_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_9_R1.java b/1_9_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_9_R1.java
index 885d91e4..595ad92f 100644
--- a/1_9_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_9_R1.java
+++ b/1_9_R1/src/main/java/net/wesjd/anvilgui/version/Wrapper1_9_R1.java
@@ -50,6 +50,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/1_9_R2/pom.xml b/1_9_R2/pom.xml
index 154bf5f7..b3613d3a 100644
--- a/1_9_R2/pom.xml
+++ b/1_9_R2/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-1_9_R2
diff --git a/1_9_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_9_R2.java b/1_9_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_9_R2.java
index 38f8609b..02fd17fa 100644
--- a/1_9_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_9_R2.java
+++ b/1_9_R2/src/main/java/net/wesjd/anvilgui/version/Wrapper1_9_R2.java
@@ -50,6 +50,14 @@ public void sendPacketCloseWindow(Player player, int containerId) {
toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId));
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void sendPacketExperienceChange(Player player, int experienceLevel) {
+ toNMS(player).playerConnection.sendPacket(new PacketPlayOutExperience(0f, 0, experienceLevel));
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/README.md b/README.md
index 0ff11631..dbc3feb1 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@ AnvilGUI requires the usage of Maven or a Maven compatible build system.
net.wesjd
anvilgui
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
@@ -158,6 +158,13 @@ Useful for situations like password input to play.
builder.preventClose();
```
+#### `geyserCompat()`
+This toggles compatibility with Geyser software, specifically being able to use AnvilGUI with 0 experience level on Bedrock.
+Enabled by default.
+```java
+builder.geyserCompat();
+```
+
#### `text(String)`
Takes a `String` that contains what the initial text in the renaming field should be set to.
If `itemLeft` is provided, then the display name is set to the provided text. If no `itemLeft`
diff --git a/abstraction/pom.xml b/abstraction/pom.xml
index 9e6dd9c3..51ea9b9a 100644
--- a/abstraction/pom.xml
+++ b/abstraction/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui-abstraction
diff --git a/abstraction/src/main/java/net/wesjd/anvilgui/version/VersionWrapper.java b/abstraction/src/main/java/net/wesjd/anvilgui/version/VersionWrapper.java
index 88fdcf65..5efe2c56 100644
--- a/abstraction/src/main/java/net/wesjd/anvilgui/version/VersionWrapper.java
+++ b/abstraction/src/main/java/net/wesjd/anvilgui/version/VersionWrapper.java
@@ -37,13 +37,21 @@ public interface VersionWrapper {
void sendPacketOpenWindow(Player player, int containerId, Object inventoryTitle);
/**
- * Sends PacketPlayOutCloseWindow to the player with the contaienr id
+ * Sends PacketPlayOutCloseWindow to the player with the container id
*
* @param player The player to send the packet to
* @param containerId The container id to close
*/
void sendPacketCloseWindow(Player player, int containerId);
+ /**
+ * Sends PacketPlayOutExperience to the player with the experience level
+ *
+ * @param player The player to send the packet to
+ * @param experienceLevel The experience level to set
+ */
+ void sendPacketExperienceChange(Player player, int experienceLevel);
+
/**
* Sets the NMS player's active container to the default one
*
diff --git a/api/pom.xml b/api/pom.xml
index 5af2e9aa..d1ee8a15 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -7,7 +7,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
anvilgui
@@ -205,6 +205,12 @@
${project.parent.version}
compile
+
+ org.geysermc.geyser
+ api
+ 2.4.0-SNAPSHOT
+ provided
+
diff --git a/api/src/main/java/net/wesjd/anvilgui/AnvilGUI.java b/api/src/main/java/net/wesjd/anvilgui/AnvilGUI.java
index 6e8ed050..1aab4e5f 100644
--- a/api/src/main/java/net/wesjd/anvilgui/AnvilGUI.java
+++ b/api/src/main/java/net/wesjd/anvilgui/AnvilGUI.java
@@ -27,6 +27,7 @@
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.Plugin;
+import org.geysermc.geyser.api.GeyserApi;
/**
* An anvil gui, used for gathering a user's input
@@ -80,7 +81,10 @@ private static ItemStack itemNotNull(ItemStack stack) {
* A state that decides where the anvil GUI is able to get closed by the user
*/
private final boolean preventClose;
-
+ /**
+ * A state that decides whether compatibility with Geyser software is enabled
+ */
+ private final boolean geyserCompatibility;
/**
* A set of slot numbers that are permitted to be interacted with by the user. An interactable
* slot is one that is able to be minipulated by the player, i.e. clicking and picking up an item,
@@ -122,15 +126,16 @@ private static ItemStack itemNotNull(ItemStack stack) {
/**
* Create an AnvilGUI
*
- * @param plugin A {@link org.bukkit.plugin.java.JavaPlugin} instance
- * @param player The {@link Player} to open the inventory for
- * @param mainThreadExecutor An {@link Executor} that executes on the main server thread
- * @param titleComponent What to have the text already set to
- * @param initialContents The initial contents of the inventory
- * @param preventClose Whether to prevent the inventory from closing
- * @param closeListener A {@link Consumer} when the inventory closes
+ * @param plugin A {@link org.bukkit.plugin.java.JavaPlugin} instance
+ * @param player The {@link Player} to open the inventory for
+ * @param mainThreadExecutor An {@link Executor} that executes on the main server thread
+ * @param titleComponent What to have the text already set to
+ * @param initialContents The initial contents of the inventory
+ * @param preventClose Whether to prevent the inventory from closing
+ * @param geyserCompatibility Whether to enable compatibility with Geyser software
+ * @param closeListener A {@link Consumer} when the inventory closes
* @param concurrentClickHandlerExecution Flag to allow concurrent execution of the click handler
- * @param clickHandler A {@link ClickHandler} that is called when the player clicks a slot
+ * @param clickHandler A {@link ClickHandler} that is called when the player clicks a slot
*/
private AnvilGUI(
Plugin plugin,
@@ -139,6 +144,7 @@ private AnvilGUI(
Object titleComponent,
ItemStack[] initialContents,
boolean preventClose,
+ boolean geyserCompatibility,
Set interactableSlots,
Consumer closeListener,
boolean concurrentClickHandlerExecution,
@@ -149,6 +155,7 @@ private AnvilGUI(
this.titleComponent = titleComponent;
this.initialContents = initialContents;
this.preventClose = preventClose;
+ this.geyserCompatibility = geyserCompatibility;
this.interactableSlots = Collections.unmodifiableSet(interactableSlots);
this.closeListener = closeListener;
this.concurrentClickHandlerExecution = concurrentClickHandlerExecution;
@@ -179,6 +186,16 @@ private void openInventory() {
WRAPPER.setActiveContainerId(container, containerId);
WRAPPER.addActiveContainerSlotListener(container, player);
+ if (geyserCompatibility
+ && plugin.getServer().getPluginManager().getPlugin("Geyser-Spigot") != null
+ && plugin.getServer()
+ .getPluginManager()
+ .getPlugin("Geyser-Spigot")
+ .isEnabled()
+ && GeyserApi.api().isBedrockPlayer(player.getUniqueId())) {
+ WRAPPER.sendPacketExperienceChange(player, 20);
+ }
+
open = true;
}
@@ -208,6 +225,15 @@ private void closeInventory(boolean sendClosePacket) {
WRAPPER.setActiveContainerDefault(player);
WRAPPER.sendPacketCloseWindow(player, containerId);
}
+ if (geyserCompatibility
+ && plugin.getServer().getPluginManager().getPlugin("Geyser-Spigot") != null
+ && plugin.getServer()
+ .getPluginManager()
+ .getPlugin("Geyser-Spigot")
+ .isEnabled()
+ && GeyserApi.api().isBedrockPlayer(player.getUniqueId())) {
+ WRAPPER.sendPacketExperienceChange(player, player.getLevel());
+ }
if (closeListener != null) {
closeListener.accept(StateSnapshot.fromAnvilGUI(this));
@@ -392,6 +418,8 @@ public static class Builder {
private ClickHandler clickHandler;
/** A state that decides where the anvil GUI is able to be closed by the user */
private boolean preventClose = false;
+ /** A state that determines whether support for Geyser software is enabled */
+ private boolean geyserCompatibility = true;
/** A set of integers containing the slot numbers that should be modifiable by the user. */
private Set interactableSlots = Collections.emptySet();
/** The {@link Plugin} that this anvil GUI is associated with */
@@ -430,6 +458,14 @@ public Builder preventClose() {
return this;
}
+ /**
+ * Disables compatibility with Geyser software
+ */
+ public Builder disableGeyserCompat() {
+ geyserCompatibility = false;
+ return this;
+ }
+
/**
* Permit the user to modify (take items in and out) the slot numbers provided.
*
@@ -640,6 +676,7 @@ public AnvilGUI open(Player player) {
titleComponent,
new ItemStack[] {itemLeft, itemRight, itemOutput},
preventClose,
+ geyserCompatibility,
interactableSlots,
closeListener,
concurrentClickHandlerExecution,
diff --git a/pom.xml b/pom.xml
index 80282ee5..55c6eab3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
net.wesjd
anvilgui-parent
- 1.9.6-SNAPSHOT
+ 1.10.0-SNAPSHOT
pom
@@ -53,6 +53,10 @@
nms-repo
https://repo.codemc.org/repository/nms/
+
+ opencollab-snapshot
+ https://repo.opencollab.dev/main/
+