mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-15 07:01:36 +08:00
468a1cbbd7
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
Bukkit Changes:
ee12ca7b Add maximum repair cost API to AnvilInventory
CraftBukkit Changes:
1ceee633
Implement maximum repair cost API to AnvilInventory
47 lines
2.1 KiB
Diff
47 lines
2.1 KiB
Diff
From 88c0400ef837ed8809fd5ddf71e58994bdb0a5c0 Mon Sep 17 00:00:00 2001
|
|
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
|
|
index 8731d857b..4b6424911 100644
|
|
--- a/src/main/java/net/minecraft/server/ContainerAnvil.java
|
|
+++ b/src/main/java/net/minecraft/server/ContainerAnvil.java
|
|
@@ -378,9 +378,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 1ddbb4329..a045ec3b2 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -1431,6 +1431,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.19.0
|
|
|