From d10ee21db91d466d499e140a462b37f04f22c787 Mon Sep 17 00:00:00 2001 From: AlphaBlend Date: Sun, 16 Oct 2016 23:19:34 -0700 Subject: [PATCH] Add EntityZapEvent diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EntityZapEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EntityZapEvent.java new file mode 100644 index 00000000..3547d063 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/entity/EntityZapEvent.java @@ -0,0 +1,62 @@ +package com.destroystokyo.paper.event.entity; + +import org.apache.commons.lang.Validate; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LightningStrike; +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.entity.EntityTransformEvent; + +import javax.annotation.Nonnull; + +/** + * Fired when lightning strikes an entity + */ +public class EntityZapEvent extends EntityTransformEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private boolean cancelled; + private final LightningStrike bolt; + + public EntityZapEvent(final Entity entity, @Nonnull final LightningStrike bolt, @Nonnull final Entity replacementEntity) { + super(entity, replacementEntity, TransformReason.LIGHTNING); + Validate.notNull(bolt); + Validate.notNull(replacementEntity); + this.bolt = bolt; + } + + public boolean isCancelled() { + return cancelled; + } + + public void setCancelled(boolean cancel) { + this.cancelled = cancel; + } + + /** + * Gets the lightning bolt that is striking the entity. + * @return The lightning bolt responsible for this event + */ + @Nonnull + public LightningStrike getBolt() { + return bolt; + } + + /** + * Gets the entity that will replace the struck entity. + * @return The entity that will replace the struck entity + */ + @Nonnull + public Entity getReplacementEntity() { + return getTransformedEntity(); + } + + @Override + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/src/main/java/org/bukkit/event/entity/PigZapEvent.java b/src/main/java/org/bukkit/event/entity/PigZapEvent.java index 86983676..8dd1e3ce 100644 --- a/src/main/java/org/bukkit/event/entity/PigZapEvent.java +++ b/src/main/java/org/bukkit/event/entity/PigZapEvent.java @@ -1,5 +1,6 @@ package org.bukkit.event.entity; +import com.destroystokyo.paper.event.entity.EntityZapEvent; import org.bukkit.entity.LightningStrike; import org.bukkit.entity.Pig; import org.bukkit.entity.PigZombie; @@ -9,14 +10,14 @@ import org.bukkit.event.HandlerList; /** * Stores data for pigs being zapped */ -public class PigZapEvent extends EntityTransformEvent implements Cancellable { - private static final HandlerList handlers = new HandlerList(); +public class PigZapEvent extends EntityZapEvent implements Cancellable { + //private static final HandlerList handlers = new HandlerList(); private boolean canceled; private final PigZombie pigzombie; private final LightningStrike bolt; public PigZapEvent(final Pig pig, final LightningStrike bolt, final PigZombie pigzombie) { - super(pig, pigzombie, TransformReason.LIGHTNING); + super(pig, bolt, pigzombie); this.bolt = bolt; this.pigzombie = pigzombie; } @@ -55,6 +56,8 @@ public class PigZapEvent extends EntityTransformEvent implements Cancellable { return pigzombie; } + // Paper start + /* @Override public HandlerList getHandlers() { return handlers; @@ -63,4 +66,6 @@ public class PigZapEvent extends EntityTransformEvent implements Cancellable { public static HandlerList getHandlerList() { return handlers; } + */ + // Paper end } -- 2.19.1