Bukkit/CraftBukkit — pull request #1314 by bloodmc (2014-01-06 23:09:00+00:00)
Title: [C] Send a Packet103SetSlot to client when a BlockPlaceEvent is cancelled.

### The Issue:

Whenever a player, in non-creative mode, places a block in a protected area the equipped itemstack size on client is never updated properly since the client thinks the block was placed.

### Justification for this PR:

Provide a patch to make sure client itemstack size is updated after a block place is cancelled.

### PR Breakdown:

This bug occurs because ItemStack.matches returns true since the server does not decrement stack
size if a BlockPlaceEvent is cancelled. This causes PlayerConnection.a(handlePlace) not to send the appropriate packet to client which causes the bug. To fix this, I simply force a Packet103SetSlot to be sent by forcing always flag to true whenever a block placement fails.

### Testing Results and Materials:

Using latest CraftBukkit dev build, grab a stack of 64 of any block then attempt to place in a protected area that you have no rights to. Result, the stack count goes down to 63 after the block place is cancelled when it should remain at 64.

### JIRA Ticket:

https://bukkit.atlassian.net/browse/BUKKIT-5284