Introduce beacon activation/deactivation events

This commit is contained in:
Spyridon Pagkalos 2021-03-25 20:25:47 +02:00
parent b1396d8f38
commit 0bdc7d2ba9
2 changed files with 85 additions and 0 deletions

View file

@ -0,0 +1,41 @@
package io.papermc.paper.event.block;
import org.bukkit.block.Beacon;
import org.bukkit.block.Block;
import org.bukkit.event.HandlerList;
import org.bukkit.event.block.BlockEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when a beacon is activated.
* Activation occurs when the beacon beam becomes visible.
*/
@NullMarked
public class BeaconActivatedEvent extends BlockEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
@ApiStatus.Internal
public BeaconActivatedEvent(final Block block) {
super(block);
}
/**
* Returns the beacon that was activated.
*
* @return the beacon that was activated.
*/
public Beacon getBeacon() {
return (Beacon) this.block.getState();
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
}

View file

@ -0,0 +1,44 @@
package io.papermc.paper.event.block;
import org.bukkit.Material;
import org.bukkit.block.Beacon;
import org.bukkit.block.Block;
import org.bukkit.event.HandlerList;
import org.bukkit.event.block.BlockEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
/**
* Called when a beacon is deactivated, either because its base block(s) or itself were destroyed.
*/
@NullMarked
public class BeaconDeactivatedEvent extends BlockEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
@ApiStatus.Internal
public BeaconDeactivatedEvent(final Block block) {
super(block);
}
/**
* Returns the beacon that was deactivated.
* This will return {@code null} if the beacon does not exist.
* (which can occur after the deactivation of a now broken beacon)
*
* @return The beacon that got deactivated, or {@code null} if it does not exist.
*/
public @Nullable Beacon getBeacon() {
return this.block.getType() == Material.BEACON ? (Beacon) this.block.getState() : null;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
}