diff options
author | h31ix <effectsdude@gmail.com> | 2012-10-30 23:21:53 -0400 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2012-10-31 00:21:31 -0400 |
commit | 54cce5bf9210362b9dda0148b65267327a1c8b17 (patch) | |
tree | 85e66afe0a736970b91e1fd47d0acaa65d3990d4 /src/main/java/net/minecraft/server/ItemHanging.java | |
parent | 4efd06a6b577cc8b934f3900f1b2a09c37f0224a (diff) | |
download | craftbukkit-54cce5bf9210362b9dda0148b65267327a1c8b17.tar craftbukkit-54cce5bf9210362b9dda0148b65267327a1c8b17.tar.gz craftbukkit-54cce5bf9210362b9dda0148b65267327a1c8b17.tar.lz craftbukkit-54cce5bf9210362b9dda0148b65267327a1c8b17.tar.xz craftbukkit-54cce5bf9210362b9dda0148b65267327a1c8b17.zip |
[Bleeding] Implement new Hanging events. Adds BUKKIT-2754
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemHanging.java')
-rw-r--r-- | src/main/java/net/minecraft/server/ItemHanging.java | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/main/java/net/minecraft/server/ItemHanging.java b/src/main/java/net/minecraft/server/ItemHanging.java index 85ccd00c..27d4c259 100644 --- a/src/main/java/net/minecraft/server/ItemHanging.java +++ b/src/main/java/net/minecraft/server/ItemHanging.java @@ -2,6 +2,7 @@ package net.minecraft.server; // CraftBukkit start import org.bukkit.entity.Player; +import org.bukkit.event.hanging.HangingPlaceEvent; import org.bukkit.event.painting.PaintingPlaceEvent; // CraftBukkit end @@ -30,17 +31,23 @@ public class ItemHanging extends Item { if (entityhanging != null && entityhanging.survives()) { if (!world.isStatic) { // CraftBukkit start - if (entityhanging instanceof EntityPainting) { - Player who = (entityhuman == null) ? null : (Player) entityhuman.getBukkitEntity(); - org.bukkit.block.Block blockClicked = world.getWorld().getBlockAt(i, j, k); - org.bukkit.block.BlockFace blockFace = org.bukkit.craftbukkit.block.CraftBlock.notchToBlockFace(l); + Player who = (entityhuman == null) ? null : (Player) entityhuman.getBukkitEntity(); + org.bukkit.block.Block blockClicked = world.getWorld().getBlockAt(i, j, k); + org.bukkit.block.BlockFace blockFace = org.bukkit.craftbukkit.block.CraftBlock.notchToBlockFace(l); - PaintingPlaceEvent event = new PaintingPlaceEvent((org.bukkit.entity.Painting) entityhanging.getBukkitEntity(), who, blockClicked, blockFace); - world.getServer().getPluginManager().callEvent(event); + HangingPlaceEvent event = new HangingPlaceEvent((org.bukkit.entity.Hanging) entityhanging.getBukkitEntity(), who, blockClicked, blockFace); + world.getServer().getPluginManager().callEvent(event); - if (event.isCancelled()) { - return false; - } + PaintingPlaceEvent paintingEvent = null; + if(entityhanging instanceof EntityPainting) { + // Fire old painting event until it can be removed + paintingEvent = new PaintingPlaceEvent((org.bukkit.entity.Painting) entityhanging.getBukkitEntity(), who, blockClicked, blockFace); + paintingEvent.setCancelled(event.isCancelled()); + world.getServer().getPluginManager().callEvent(paintingEvent); + } + + if (event.isCancelled() || (paintingEvent != null && paintingEvent.isCancelled())) { + return false; } // CraftBukkit end |