2018-08-27 02:11:49 +08:00
|
|
|
From 7925cf56b5e55b1d3f53e3299dd256d2cf6a21a7 Mon Sep 17 00:00:00 2001
|
2017-07-12 11:23:17 +08:00
|
|
|
From: Aikar <aikar@aikar.co>
|
|
|
|
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
|
2018-08-27 02:11:49 +08:00
|
|
|
index a8a875fe11..f2e15fa545 100644
|
2017-07-12 11:23:17 +08:00
|
|
|
--- a/src/main/java/net/minecraft/server/ContainerAnvil.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ContainerAnvil.java
|
2018-07-18 08:08:13 +08:00
|
|
|
@@ -377,9 +377,9 @@ public class ContainerAnvil extends Container {
|
2017-07-12 11:23:17 +08:00
|
|
|
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
|
2018-08-27 02:11:49 +08:00
|
|
|
index 2837fb87e5..b3479a6194 100644
|
2017-07-12 11:23:17 +08:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
2018-08-27 02:11:49 +08:00
|
|
|
@@ -1418,6 +1418,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
2017-07-12 11:23:17 +08:00
|
|
|
if (container.getBukkitView().getType() != prop.getType()) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
+ // Paper start
|
|
|
|
+ if (prop == Property.REPAIR_COST && container instanceof net.minecraft.server.ContainerAnvil) {
|
2018-07-19 12:42:43 +08:00
|
|
|
+ ((net.minecraft.server.ContainerAnvil) container).levelCost = value;
|
2017-07-12 11:23:17 +08:00
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
getHandle().setContainerData(container, prop.getId(), value);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
--
|
2018-07-04 15:55:24 +08:00
|
|
|
2.18.0
|
2017-07-12 11:23:17 +08:00
|
|
|
|