[Bleeding] Added EntityBreakDoorEvent. Fixes BUKKIT-1134

This commit is contained in:
feildmaster 2012-03-10 18:43:35 -06:00 committed by EvilSeph
parent 69ee00b6f0
commit 06b814fd7e
2 changed files with 16 additions and 0 deletions

View File

@ -30,6 +30,12 @@ public class PathfinderGoalBreakDoor extends PathfinderGoalDoorInteract {
}
if (--this.i == 0 && this.a.world.difficulty == 3) {
// CraftBukkit start
if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreakDoorEvent(this.a, this.b, this.c, this.d).isCancelled()) {
this.c();
return;
}
// CraftBukkit end
this.a.world.setTypeId(this.b, this.c, this.d, 0);
this.a.world.triggerEffect(1012, this.b, this.c, this.d, 0);
this.a.world.triggerEffect(2001, this.b, this.c, this.d, this.e.id);

View File

@ -441,6 +441,16 @@ public class CraftEventFactory {
return event;
}
public static EntityBreakDoorEvent callEntityBreakDoorEvent(Entity entity, int x, int y, int z) {
org.bukkit.entity.Entity entity1 = entity.getBukkitEntity();
Block block = entity1.getWorld().getBlockAt(x, y, z);
EntityBreakDoorEvent event = new EntityBreakDoorEvent((LivingEntity) entity1, block);
entity1.getServer().getPluginManager().callEvent(event);
return event;
}
public static Container callInventoryOpenEvent(EntityPlayer player, Container container) {
if (player.activeContainer != player.defaultContainer) { // fire INVENTORY_CLOSE if one already open
player.netServerHandler.handleContainerClose(new Packet101CloseWindow(player.activeContainer.windowId));