aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0187-Fix-Anvil-Level-sync-to-client.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches/0187-Fix-Anvil-Level-sync-to-client.patch')
-rw-r--r--Spigot-Server-Patches/0187-Fix-Anvil-Level-sync-to-client.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0187-Fix-Anvil-Level-sync-to-client.patch b/Spigot-Server-Patches/0187-Fix-Anvil-Level-sync-to-client.patch
new file mode 100644
index 0000000000..16ad8709f9
--- /dev/null
+++ b/Spigot-Server-Patches/0187-Fix-Anvil-Level-sync-to-client.patch
@@ -0,0 +1,46 @@
+From 701f704672d685a7c1683c9a4f7c4055e3c4fcdc Mon Sep 17 00:00:00 2001
+From: Aikar <[email protected]>
+Date: Tue, 11 Jul 2017 23:17:57 -0400
+Subject: [PATCH] Fix Anvil Level sync to client
+
+https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/commits/763827668e6e5cddc111f3c93a0d718fec21ff51
+
+Was done incorrectly and is now causing level desyncs to client.
+
+Always send current level to the client, and instead make setWindowProperty set the level.
+
+diff --git a/src/main/java/net/minecraft/server/ContainerAnvil.java b/src/main/java/net/minecraft/server/ContainerAnvil.java
+index a6ac516147..1560dd382a 100644
+--- a/src/main/java/net/minecraft/server/ContainerAnvil.java
++++ b/src/main/java/net/minecraft/server/ContainerAnvil.java
+@@ -375,9 +375,9 @@ public class ContainerAnvil extends Container {
+ for (int i = 0; i < this.listeners.size(); ++i) {
+ ICrafting icrafting = (ICrafting) this.listeners.get(i);
+
+- if (this.lastLevelCost != this.levelCost) {
++ //if (this.lastLevelCost != this.levelCost) { // Paper - this was the wrong solution to this, fixing it correctly in CraftPlayer
+ icrafting.setContainerData(this, 0, this.levelCost);
+- }
++ //} // Paper
+ }
+
+ this.lastLevelCost = this.levelCost;
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+index c5f2284553..d85e622525 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+@@ -1405,6 +1405,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ if (container.getBukkitView().getType() != prop.getType()) {
+ return false;
+ }
++ // Paper start
++ if (prop == Property.REPAIR_COST && container instanceof net.minecraft.server.ContainerAnvil) {
++ ((net.minecraft.server.ContainerAnvil) container).levelCost = value;
++ }
++ // Paper end
+ getHandle().setContainerData(container, prop.getId(), value);
+ return true;
+ }
+--
+2.21.0
+