From a520009d4480e4b49846a57681d065a651c45419 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..c8f0bb05 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/entity/EntityZapEvent.java @@ -0,0 +1,63 @@ +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; +import java.util.Collections; + +/** + * 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, Collections.singletonList(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 c1d4b30a..de8cad81 100644 --- a/src/main/java/org/bukkit/event/entity/PigZapEvent.java +++ b/src/main/java/org/bukkit/event/entity/PigZapEvent.java @@ -2,6 +2,7 @@ package org.bukkit.event.entity; import java.util.Collections; import org.bukkit.entity.Entity; +import com.destroystokyo.paper.event.entity.EntityZapEvent; import org.bukkit.entity.LightningStrike; import org.bukkit.entity.Pig; import org.bukkit.entity.PigZombie; @@ -11,14 +12,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, Collections.singletonList((Entity) pigzombie), TransformReason.LIGHTNING); + super(pig, bolt, pigzombie); this.bolt = bolt; this.pigzombie = pigzombie; } @@ -57,6 +58,8 @@ public class PigZapEvent extends EntityTransformEvent implements Cancellable { return pigzombie; } + // Paper start + /* @Override public HandlerList getHandlers() { return handlers; @@ -65,4 +68,6 @@ public class PigZapEvent extends EntityTransformEvent implements Cancellable { public static HandlerList getHandlerList() { return handlers; } + */ + // Paper end } -- 2.20.1