SPIGOT-4372: LightningStrikeEvent cause API

By: md_5 <git@md-5.net>
This commit is contained in:
Bukkit/Spigot 2018-09-15 19:16:33 +10:00
parent 88399f1f47
commit 21030f1700

View file

@ -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;
}
}