|
28 | 28 | import org.bukkit.entity.Entity; |
29 | 29 | import org.bukkit.event.EventHandler; |
30 | 30 | import org.bukkit.event.EventPriority; |
31 | | -import org.bukkit.event.block.*; |
| 31 | +import org.bukkit.event.block.BlockExplodeEvent; |
| 32 | +import org.bukkit.event.block.BlockFromToEvent; |
| 33 | +import org.bukkit.event.block.BlockPistonExtendEvent; |
| 34 | +import org.bukkit.event.block.BlockRedstoneEvent; |
| 35 | +import org.bukkit.event.block.BlockSpreadEvent; |
| 36 | +import org.bukkit.event.block.SpongeAbsorbEvent; |
32 | 37 | import org.bukkit.event.entity.EntityChangeBlockEvent; |
33 | 38 | import org.bukkit.event.entity.EntityExplodeEvent; |
34 | 39 | import org.bukkit.event.inventory.InventoryMoveItemEvent; |
@@ -188,6 +193,21 @@ private boolean checkAndEnableMoveEvent(ConfigurationSection section) { |
188 | 193 | return false; |
189 | 194 | } |
190 | 195 |
|
| 196 | + //Prevent skulker box or shop sign being pushed, see https://github.com/PotatoCraft-Studio/QuickShop-Reremake/issues/248 |
| 197 | + @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) |
| 198 | + public void onBlockBeingPushed(BlockPistonExtendEvent event) { |
| 199 | + if (!useEnhanceProtection) { |
| 200 | + return; |
| 201 | + } |
| 202 | + for (org.bukkit.block.Block block : event.getBlocks()) { |
| 203 | + Shop shop = getShopRedstone(block.getLocation(), true); |
| 204 | + if (shop != null) { |
| 205 | + event.setCancelled(true); |
| 206 | + return; |
| 207 | + } |
| 208 | + } |
| 209 | + } |
| 210 | + |
191 | 211 | @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) |
192 | 212 | public void onBlockExplode(BlockExplodeEvent e) { |
193 | 213 | for (int i = 0, a = e.blockList().size(); i < a; i++) { |
|
0 commit comments