From 6cf3c23b475267c35824225fee3a1f1e273a3ae6 Mon Sep 17 00:00:00 2001 From: wizjany Date: Wed, 17 Jul 2019 07:45:31 -0400 Subject: [PATCH] Check waterlogged blocks when emptying buckets. Fixes WORLDGUARD-4119. (cherry picked from commit 3272759f258490124a744cad2458c715e6c4e6e6) --- .../bukkit/listener/EventAbstractionListener.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java index 3233b177..831c95bc 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java @@ -64,6 +64,7 @@ import org.bukkit.block.Dropper; import org.bukkit.block.Hopper; import org.bukkit.block.PistonMoveReaction; +import org.bukkit.block.data.Waterlogged; import org.bukkit.block.data.type.Dispenser; import org.bukkit.entity.AreaEffectCloud; import org.bukkit.entity.Entity; @@ -530,7 +531,15 @@ public void onBedEnter(PlayerBedEnterEvent event) { @EventHandler(ignoreCancelled = true) public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) { Player player = event.getPlayer(); - Block blockAffected = event.getBlockClicked().getRelative(event.getBlockFace()); + Block blockClicked = event.getBlockClicked(); + Block blockAffected; + + if (blockClicked.getBlockData() instanceof Waterlogged) { + blockAffected = blockClicked; + } else { + blockAffected = blockClicked.getRelative(event.getBlockFace()); + } + boolean allowed = false; // Milk buckets can't be emptied as of writing