@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; } } }
@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(priority = EventPriority.HIGH) public void onMultiBlockPlace(BlockMultiPlaceEvent e) { for (BlockState blockState : e.getReplacedBlockStates()) { Block below = blockState.getBlock().getRelative(BlockFace.DOWN); if (shopUtils.isShop(below.getLocation())) { Shop shop = shopUtils.getShop(below.getLocation()); if (shop.getItem() != null) { shop.getItem().resetForPlayer(e.getPlayer()); } e.setCancelled(true); } } }
/** * 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); } } }