001 package org.bukkit.event.entity;
002
003 import org.bukkit.Location;
004 import org.bukkit.block.Block;
005 import org.bukkit.entity.Entity;
006 import org.bukkit.event.Cancellable;
007 import org.bukkit.event.HandlerList;
008
009 import java.util.List;
010
011 /**
012 * Called when an entity explodes
013 */
014 public class EntityExplodeEvent extends EntityEvent implements Cancellable {
015 private static final HandlerList handlers = new HandlerList();
016 private boolean cancel;
017 private final Location location;
018 private final List<Block> blocks;
019 private float yield;
020
021 public EntityExplodeEvent(final Entity what, final Location location, final List<Block> blocks, final float yield) {
022 super(what);
023 this.location = location;
024 this.blocks = blocks;
025 this.yield = yield;
026 this.cancel = false;
027 }
028
029 public boolean isCancelled() {
030 return cancel;
031 }
032
033 public void setCancelled(boolean cancel) {
034 this.cancel = cancel;
035 }
036
037 /**
038 * Returns the list of blocks that would have been removed or were removed
039 * from the explosion event.
040 *
041 * @return All blown-up blocks
042 */
043 public List<Block> blockList() {
044 return blocks;
045 }
046
047 /**
048 * Returns the location where the explosion happened.
049 * <p>
050 * It is not possible to get this value from the Entity as the Entity no
051 * longer exists in the world.
052 *
053 * @return The location of the explosion
054 */
055 public Location getLocation() {
056 return location;
057 }
058
059 /**
060 * Returns the percentage of blocks to drop from this explosion
061 *
062 * @return The yield.
063 */
064 public float getYield() {
065 return yield;
066 }
067
068 /**
069 * Sets the percentage of blocks to drop from this explosion
070 *
071 * @param yield The new yield percentage
072 */
073 public void setYield(float yield) {
074 this.yield = yield;
075 }
076
077 @Override
078 public HandlerList getHandlers() {
079 return handlers;
080 }
081
082 public static HandlerList getHandlerList() {
083 return handlers;
084 }
085 }