@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onPlaceBlock(final PlaceBlockEvent event) { if (!isRegionSupportEnabled(event.getWorld())) return; // Region support disabled RegionQuery query = getPlugin().getRegionContainer().createQuery(); Block block; if ((block = event.getCause().getFirstBlock()) != null) { // ================================================================ // PISTONS flag // ================================================================ if (Materials.isPistonBlock(block.getType())) { event.filter(testState(query, DefaultFlag.PISTONS), false); } } }
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onBreakBlock(final BreakBlockEvent event) { if (!isRegionSupportEnabled(event.getWorld())) return; // Region support disabled WorldConfiguration config = getWorldConfig(event.getWorld()); RegionQuery query = getPlugin().getRegionContainer().createQuery(); Block block; if ((block = event.getCause().getFirstBlock()) != null) { // ================================================================ // PISTONS flag // ================================================================ if (Materials.isPistonBlock(block.getType())) { event.filter(testState(query, DefaultFlag.PISTONS), false); } } Entity entity; if ((entity = event.getCause().getFirstEntity()) != null) { // ================================================================ // CREEPER_EXPLOSION flag // ================================================================ if (entity instanceof Creeper) { // Creeper event.filter( testState(query, DefaultFlag.CREEPER_EXPLOSION), config.explosionFlagCancellation); } // ================================================================ // ENDERDRAGON_BLOCK_DAMAGE flag // ================================================================ if (entity instanceof EnderDragon) { // Enderdragon event.filter( testState(query, DefaultFlag.ENDERDRAGON_BLOCK_DAMAGE), config.explosionFlagCancellation); } } }