diff --git a/src/main/java/com/jeff_media/customblockdata/BlockDataListener.java b/src/main/java/com/jeff_media/customblockdata/BlockDataListener.java index 26182ed..55e1a95 100644 --- a/src/main/java/com/jeff_media/customblockdata/BlockDataListener.java +++ b/src/main/java/com/jeff_media/customblockdata/BlockDataListener.java @@ -105,6 +105,14 @@ private void callAndRemove(Block block, Event bukkitEvent) { public void onBreak(BlockBreakEvent event) { callAndRemove(event); } + + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onPhysics(BlockPhysicsEvent event) { + // event.getBlock().getType() returns air when the block is broken + if(event.getBlock().getType() == Material.AIR) { + callAndRemove(event.getBlock(), event); + } + } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlace(BlockPlaceEvent event) { @@ -142,6 +150,10 @@ public void onPiston(BlockPistonExtendEvent event) { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPiston(BlockPistonRetractEvent event) { + Block pistonHead = event.getBlock().getRelative(event.getDirection().getOppositeFace()); + if(CustomBlockData.hasCustomBlockData(pistonHead, plugin)) { + callAndRemove(pistonHead); + } onPiston(event.getBlocks(), event); }