From dd90fa21c7a1fdac636004e954703cc781f54001 Mon Sep 17 00:00:00 2001 From: wizjany Date: Sat, 12 Jun 2021 23:01:32 -0400 Subject: [PATCH] Cover item dispense behaviors. Depends on spigot throwing events. --- .../bukkit/listener/EventAbstractionListener.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 a70244fa..f36e61db 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 @@ -1050,9 +1050,14 @@ public void onBlockDispense(BlockDispenseEvent event) { handleBlockRightClick(event, cause, item, clicked, placed); // handle special dispenser behavior - if (item != null && Materials.isShulkerBox(item.getType())) { - Events.fireToCancel(event, new PlaceBlockEvent(event, cause, placed.getLocation(), item.getType())); - return; + if (Materials.isShulkerBox(item.getType())) { + if (Events.fireToCancel(event, new PlaceBlockEvent(event, cause, placed.getLocation(), item.getType()))) { + playDenyEffect(placed.getLocation()); + } + } else if (isItemAppliedToBlock(item, placed)) { + if (Events.fireToCancel(event, new PlaceBlockEvent(event, cause, placed.getLocation(), placed.getType()))) { + playDenyEffect(placed.getLocation()); + } } } }