diff options
author | Travis Watkins <amaranth@ubuntu.com> | 2012-11-16 13:46:52 -0600 |
---|---|---|
committer | Travis Watkins <amaranth@ubuntu.com> | 2012-11-16 13:46:52 -0600 |
commit | 82c8cf42341a439972dfde9bb144c004dce17fd1 (patch) | |
tree | fe21895e0cb62bb6a5f1629cffb74c6dfd146600 | |
parent | 6952ad1e59e4bb7fd211d6fe7ac69670c47b705a (diff) | |
download | craftbukkit-82c8cf42341a439972dfde9bb144c004dce17fd1.tar craftbukkit-82c8cf42341a439972dfde9bb144c004dce17fd1.tar.gz craftbukkit-82c8cf42341a439972dfde9bb144c004dce17fd1.tar.lz craftbukkit-82c8cf42341a439972dfde9bb144c004dce17fd1.tar.xz craftbukkit-82c8cf42341a439972dfde9bb144c004dce17fd1.zip |
Update tile entity when interact event is cancelled.
If a plugin cancels a PlayerInteractEvent when left clicking a block the
client may have removed this block if they are in creative mode or if the
block breaks in a single hit. In this case, we need to update the client's
tile entity as well as telling it the block still exists.
-rw-r--r-- | src/main/java/net/minecraft/server/ItemInWorldManager.java | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/ItemInWorldManager.java b/src/main/java/net/minecraft/server/ItemInWorldManager.java index 3baef72e..9410b4b7 100644 --- a/src/main/java/net/minecraft/server/ItemInWorldManager.java +++ b/src/main/java/net/minecraft/server/ItemInWorldManager.java @@ -118,6 +118,11 @@ public class ItemInWorldManager { if (event.isCancelled()) { // Let the client know the block still exists ((EntityPlayer) this.player).netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, this.world)); + // Update any tile entity data for this block + TileEntity tileentity = this.world.getTileEntity(i, j, k); + if (tileentity != null) { + this.player.netServerHandler.sendPacket(tileentity.getUpdatePacket()); + } return; } // CraftBukkit end |