From a9f68eb35185ede2a774d0ba276076d21c75fd24 Mon Sep 17 00:00:00 2001 From: Traks Date: Fri, 1 Jul 2022 01:15:15 +0200 Subject: [PATCH] Prevent headless pistons deleting walls --- .../bukkit/listener/BlockEventListener.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/BlockEventListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/BlockEventListener.java index 198710578..fafd51d27 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/BlockEventListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/BlockEventListener.java @@ -890,6 +890,13 @@ public class BlockEventListener implements Listener { return; } } + if (block.getType() == Material.MOVING_PISTON + && event.getBlocks().isEmpty() + && location.add(relative.getBlockX(), relative.getBlockY(), relative.getBlockZ()).isPlotArea()) { + // Headless sticky pistons can delete the block in front of them + // when retracting. Prevent this. + event.setCancelled(true); + } return; } Plot plot = area.getOwnedPlot(location); @@ -913,6 +920,13 @@ public class BlockEventListener implements Listener { return; } } + if (block.getType() == Material.MOVING_PISTON + && event.getBlocks().isEmpty() + && !plot.equals(area.getOwnedPlot(location.add(relative.getBlockX(), relative.getBlockY(), relative.getBlockZ())))) { + // Headless sticky pistons can delete the block in front of them + // when retracting. Prevent this. + event.setCancelled(true); + } } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)