@EventHandler(ignoreCancelled = true) public void onBlockMultiPlace(BlockMultiPlaceEvent event) { List<Block> blocks = new ArrayList<>(); for (BlockState bs : event.getReplacedBlockStates()) { blocks.add(bs.getBlock()); } Events.fireToCancel(event, new PlaceBlockEvent(event, create(event.getPlayer()), event.getBlock().getWorld(), blocks, event.getBlock().getType())); }
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) public void onBlocksPlace(BlockMultiPlaceEvent placeEvent) { Player player = placeEvent.getPlayer(); //don't track in worlds where claims are not enabled if(!GriefPrevention.instance.claimsEnabledForWorld(placeEvent.getBlock().getWorld())) return; //make sure the player is allowed to build at the location for(BlockState block : placeEvent.getReplacedBlockStates()) { String noBuildReason = GriefPrevention.instance.allowBuild(player, block.getLocation(), block.getType()); if(noBuildReason != null) { GriefPrevention.sendMessage(player, TextMode.Err, noBuildReason); placeEvent.setCancelled(true); return; } } }
/** * Monitor BlockMultiPlace events. * * @param event The event to watch */ @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onBlockMultiPlace(BlockMultiPlaceEvent event) { /* WORLD BLACKLIST CHECK */ if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld())) return; Player player = event.getPlayer(); if (!UserManager.hasPlayerDataKey(player)) { return; } for (BlockState replacedBlockState : event.getReplacedBlockStates()) { BlockState blockState = replacedBlockState.getBlock().getState(); /* Check if the blocks placed should be monitored so they do not give out XP in the future */ if (BlockUtils.shouldBeWatched(blockState)) { mcMMO.getPlaceStore().setTrue(blockState); } } }