SPIGOT-824: SpongeAbsorbEvent

By: Articdive <articdive@gmail.com>
This commit is contained in:
Bukkit/Spigot 2018-07-23 17:04:09 +10:00
parent d153196c92
commit 9c3b7b278a

View file

@ -0,0 +1,60 @@
package org.bukkit.event.block;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import java.util.List;
import org.bukkit.Material;
/**
* Called when a sponge absorbs water from the world.
* <br>
* The world will be in its previous state, and {@link #getBlocks()} will
* represent the changes to be made to the world, if the event is not cancelled.
* <br>
* As this is a physics based event it may be called multiple times for "the
* same" changes.
*/
public class SpongeAbsorbEvent extends BlockEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private boolean cancelled;
private final List<BlockState> blocks;
public SpongeAbsorbEvent(Block block, List<BlockState> waterblocks) {
super(block);
this.blocks = waterblocks;
}
/**
* Get a list of all blocks to be removed by the sponge.
* <br>
* This list is mutable and contains the blocks in their removed state, i.e.
* having a type of {@link Material#AIR}.
*
* @return list of the to be removed blocks.
*/
public List<BlockState> getBlocks() {
return blocks;
}
@Override
public boolean isCancelled() {
return cancelled;
}
@Override
public void setCancelled(boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
}