From f4908db7c14eb9537b3bf2adc12175d39c776079 Mon Sep 17 00:00:00 2001 From: speakeasy Date: Mon, 17 Jan 2011 22:27:48 +0800 Subject: [PATCH] Added EntityExplodeEvent :D --- src/main/java/org/bukkit/event/Event.java | 7 ++++ .../event/entity/EntityExplodeEvent.java | 39 +++++++++++++++++++ .../bukkit/event/entity/EntityListener.java | 3 ++ .../bukkit/plugin/java/JavaPluginLoader.java | 4 ++ 4 files changed, 53 insertions(+) create mode 100644 src/main/java/org/bukkit/event/entity/EntityExplodeEvent.java diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java index a7399da7..548ef0f0 100644 --- a/src/main/java/org/bukkit/event/Event.java +++ b/src/main/java/org/bukkit/event/Event.java @@ -445,6 +445,13 @@ public abstract class Event { * @todo: add javadoc see comment */ ENTITY_COMBUST (Category.LIVING_ENTITY), + + /** + * Called when an entity explodes, either TNT, Creeper, or Ghast Fireball + * + * @todo: add javadoc see comment + */ + ENTITY_EXPLODE (Category.LIVING_ENTITY), /** * VEHICLE EVENTS diff --git a/src/main/java/org/bukkit/event/entity/EntityExplodeEvent.java b/src/main/java/org/bukkit/event/entity/EntityExplodeEvent.java new file mode 100644 index 00000000..ea17975d --- /dev/null +++ b/src/main/java/org/bukkit/event/entity/EntityExplodeEvent.java @@ -0,0 +1,39 @@ + +package org.bukkit.event.entity; + +import java.util.List; +import org.bukkit.block.Block; +import org.bukkit.entity.Entity; +import org.bukkit.event.Cancellable; + +/** + * + * @author SpeaKeasY + */ +public class EntityExplodeEvent extends EntityEvent implements Cancellable { + private boolean cancel; + private List blocks; + + public EntityExplodeEvent (Type type, Entity what, List blocks) { + super(type.ENTITY_EXPLODE, what); + this.cancel = false; + this.blocks = blocks; + } + + public boolean isCancelled() { + return cancel; + } + + public void setCancelled(boolean cancel) { + this.cancel = cancel; + } + + /** + * Returns the list of blocks that would have been removed or were + * removed from the explosion event. + */ + public List blockList() { + return blocks; + } + +} diff --git a/src/main/java/org/bukkit/event/entity/EntityListener.java b/src/main/java/org/bukkit/event/entity/EntityListener.java index 03bc5ba0..143beb05 100644 --- a/src/main/java/org/bukkit/event/entity/EntityListener.java +++ b/src/main/java/org/bukkit/event/entity/EntityListener.java @@ -23,4 +23,7 @@ public class EntityListener implements Listener { public void onEntityDamage(EntityDamageEvent event) { } + + public void onEntityExplode(EntityExplodeEvent event) { + } } diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java index 6ade2579..bff47558 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -21,6 +21,7 @@ import org.bukkit.event.entity.EntityDamageByBlockEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByProjectileEvent; import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityListener; import org.bukkit.event.player.*; import org.bukkit.event.server.PluginEvent; @@ -228,6 +229,9 @@ public final class JavaPluginLoader implements PluginLoader { case ENTITY_COMBUST: trueListener.onEntityCombust((EntityCombustEvent)event); break; + case ENTITY_EXPLODE: + trueListener.onEntityExplode((EntityExplodeEvent)event); + break; } } else if (listener instanceof VehicleListener) { VehicleListener trueListener = (VehicleListener)listener;