[Bleeding] Implement new Hanging events. Adds BUKKIT-2754

This commit is contained in:
h31ix
2012-10-30 23:21:53 -04:00
committed by EvilSeph
parent 4efd06a6b5
commit 54cce5bf92
2 changed files with 66 additions and 42 deletions

View File

@@ -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