mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-16 14:33:09 +01:00
Fix Anvil Level sync to client
763827668e
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.
This commit is contained in:
parent
151f805d3f
commit
3ecd084ba8
1 changed files with 44 additions and 0 deletions
44
Spigot-Server-Patches/Fix-Anvil-Level-sync-to-client.patch
Normal file
44
Spigot-Server-Patches/Fix-Anvil-Level-sync-to-client.patch
Normal file
|
@ -0,0 +1,44 @@
|
|||
From 0000000000000000000000000000000000000000 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 04f117ace..e3897a3f7 100644
|
||||
--- a/src/main/java/net/minecraft/server/ContainerAnvil.java
|
||||
+++ b/src/main/java/net/minecraft/server/ContainerAnvil.java
|
||||
@@ -0,0 +0,0 @@ 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 28e00da32..f42bd0ced 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -0,0 +0,0 @@ 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) {
|
||||
+ ((ContainerAnvil) container).levelCost = value;
|
||||
+ }
|
||||
+ // Paper end
|
||||
getHandle().setContainerData(container, prop.getId(), value);
|
||||
return true;
|
||||
}
|
||||
--
|
Loading…
Reference in a new issue