From 82c8cf42341a439972dfde9bb144c004dce17fd1 Mon Sep 17 00:00:00 2001 From: Travis Watkins Date: Fri, 16 Nov 2012 13:46:52 -0600 Subject: 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. --- src/main/java/net/minecraft/server/ItemInWorldManager.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/main/java/net/minecraft/server') 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 -- cgit v1.2.3