summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Panić <david@panic.tk>2019-01-07 21:20:22 +0100
committerDavid Panić <david@panic.tk>2019-01-07 21:20:22 +0100
commit6b7f687c079ab3ba6b12d9c356b8d183b7995ddc (patch)
tree20bff464b3040b76bd1f683b9a744dee105208c4
parent89ac9cd907adf057156f0f299e2d59ba240f1c65 (diff)
Fixed water flow
-rw-r--r--src/main/java/com/redstoner/modules/misc/Misc.java30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/main/java/com/redstoner/modules/misc/Misc.java b/src/main/java/com/redstoner/modules/misc/Misc.java
index c773e6b..c01c34a 100644
--- a/src/main/java/com/redstoner/modules/misc/Misc.java
+++ b/src/main/java/com/redstoner/modules/misc/Misc.java
@@ -13,6 +13,9 @@ import net.nemez.chatapi.click.Message;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.block.data.BlockData;
+import org.bukkit.block.data.Waterlogged;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
@@ -86,19 +89,26 @@ public class Misc implements Module, Listener {
}
}
+ private static final Material[] LIQUID_FLOW_EXCEPTIONS = {
+ Material.AIR,
+ Material.CAVE_AIR,
+ Material.VOID_AIR
+ };
+
// Disables water and lava breaking stuff
@EventHandler
public void onLiquidFlow(BlockFromToEvent event) {
- Material m = event.getToBlock().getType();
-
- switch (m) {
- case AIR:
- case WATER:
- case LAVA:
- return;
- default: {
- event.setCancelled(true);
- }
+ Block toBlock = event.getToBlock();
+ Material m = toBlock.getType();
+
+ for (Material exception : LIQUID_FLOW_EXCEPTIONS) {
+ if (m == exception) return;
+ }
+
+ BlockData data = toBlock.getBlockData();
+
+ if (!(data instanceof Waterlogged)) {
+ event.setCancelled(true);
}
}