diff options
author | EvilSeph <evilseph@unaligned.org> | 2011-06-08 17:52:10 -0400 |
---|---|---|
committer | EvilSeph <evilseph@unaligned.org> | 2011-06-08 17:52:10 -0400 |
commit | a285a7b211b2601717f56a5ae97ed38bd9cbef03 (patch) | |
tree | cf020819904cc7809d4fcdc30d4c97d486da70a5 /src/main | |
parent | b5d1619e75a7d535bc33a9cc6401c64befe608dc (diff) | |
download | craftbukkit-a285a7b211b2601717f56a5ae97ed38bd9cbef03.tar craftbukkit-a285a7b211b2601717f56a5ae97ed38bd9cbef03.tar.gz craftbukkit-a285a7b211b2601717f56a5ae97ed38bd9cbef03.tar.lz craftbukkit-a285a7b211b2601717f56a5ae97ed38bd9cbef03.tar.xz craftbukkit-a285a7b211b2601717f56a5ae97ed38bd9cbef03.zip |
Added more control over block placement on interactable objects. Thanks Acru!
Plugins can now allow placing a block on an interactable object, by DENYing the
interact and ALLOWing the place.
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/net/minecraft/server/ItemInWorldManager.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/main/java/net/minecraft/server/ItemInWorldManager.java b/src/main/java/net/minecraft/server/ItemInWorldManager.java index 2eeb9b8e..be652eb4 100644 --- a/src/main/java/net/minecraft/server/ItemInWorldManager.java +++ b/src/main/java/net/minecraft/server/ItemInWorldManager.java @@ -213,11 +213,13 @@ public class ItemInWorldManager { boolean bottom = (world.getData(i, j, k) & 8) == 0; ((EntityPlayer) entityhuman).netServerHandler.sendPacket(new Packet53BlockChange(i, j + (bottom ? 1 : -1), k, world)); } + result = (event.useItemInHand() != Event.Result.ALLOW); } else { result = Block.byId[i1].interact(world, i, j, k, entityhuman); - if (itemstack != null && !result) { - result = itemstack.placeItem(entityhuman, world, i, j, k, l); - } + } + + if (itemstack != null && !result) { + result = itemstack.placeItem(entityhuman, world, i, j, k, l); } // If we have 'true' and no explicit deny *or* an explicit allow -- run the item part of the hook |