From 21030f1700b2503d1201ecc15e69f2953af88644 Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Sat, 15 Sep 2018 19:16:33 +1000 Subject: [PATCH] SPIGOT-4372: LightningStrikeEvent cause API By: md_5 --- .../event/weather/LightningStrikeEvent.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/paper-api/src/main/java/org/bukkit/event/weather/LightningStrikeEvent.java b/paper-api/src/main/java/org/bukkit/event/weather/LightningStrikeEvent.java index 66fd76360f..47642af606 100644 --- a/paper-api/src/main/java/org/bukkit/event/weather/LightningStrikeEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/weather/LightningStrikeEvent.java @@ -12,10 +12,17 @@ public class LightningStrikeEvent extends WeatherEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private boolean canceled; private final LightningStrike bolt; + private final Cause cause; + @Deprecated public LightningStrikeEvent(final World world, final LightningStrike bolt) { + this(world, bolt, Cause.UNKNOWN); + } + + public LightningStrikeEvent(final World world, final LightningStrike bolt, final Cause cause) { super(world); this.bolt = bolt; + this.cause = cause; } public boolean isCancelled() { @@ -35,6 +42,15 @@ public class LightningStrikeEvent extends WeatherEvent implements Cancellable { return bolt; } + /** + * Gets the cause of this lightning strike. + * + * @return strike cause + */ + public Cause getCause() { + return cause; + } + @Override public HandlerList getHandlers() { return handlers; @@ -43,4 +59,27 @@ public class LightningStrikeEvent extends WeatherEvent implements Cancellable { public static HandlerList getHandlerList() { return handlers; } + + public enum Cause { + /** + * Triggered by the /summon command. + */ + COMMAND, + /** + * Triggered by an enchanted trident. + */ + TRIDENT, + /** + * Triggered by a skeleton horse trap. + */ + TRAP, + /** + * Triggered by weather. + */ + WEATHER, + /** + * Unknown trigger. + */ + UNKNOWN; + } }