summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArticdive <articdive@gmail.com>2018-07-23 17:04:09 +1000
committermd_5 <git@md-5.net>2018-07-23 17:05:08 +1000
commitb7b10ad1c3cd0c03c041e2958a37895ce6990f65 (patch)
tree554fc6526fc760baf6eabb82c9042971afcad94d
parentb848d8ce633871b52115247b089029749c02f579 (diff)
downloadbukkit-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.java60
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;
+ }
+}