diff options
author | Articdive <articdive@gmail.com> | 2018-07-23 17:04:09 +1000 |
---|---|---|
committer | md_5 <git@md-5.net> | 2018-07-23 17:05:08 +1000 |
commit | b7b10ad1c3cd0c03c041e2958a37895ce6990f65 (patch) | |
tree | 554fc6526fc760baf6eabb82c9042971afcad94d | |
parent | b848d8ce633871b52115247b089029749c02f579 (diff) | |
download | bukkit-b7b10ad1c3cd0c03c041e2958a37895ce6990f65.tar bukkit-b7b10ad1c3cd0c03c041e2958a37895ce6990f65.tar.gz bukkit-b7b10ad1c3cd0c03c041e2958a37895ce6990f65.tar.lz bukkit-b7b10ad1c3cd0c03c041e2958a37895ce6990f65.tar.xz bukkit-b7b10ad1c3cd0c03c041e2958a37895ce6990f65.zip |
SPIGOT-824: SpongeAbsorbEvent
-rw-r--r-- | src/main/java/org/bukkit/event/block/SpongeAbsorbEvent.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/event/block/SpongeAbsorbEvent.java b/src/main/java/org/bukkit/event/block/SpongeAbsorbEvent.java new file mode 100644 index 00000000..2611d069 --- /dev/null +++ b/src/main/java/org/bukkit/event/block/SpongeAbsorbEvent.java @@ -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; + } +} |