@Override public BlockVector3 getSpawnPosition() { return BukkitAdapter.asBlockVector(getWorld().getSpawnLocation()); }
@Override public List<com.sk89q.worldedit.entity.Entity> getEntities(Region region) { World world = getWorld(); List<Entity> ents = world.getEntities(); List<com.sk89q.worldedit.entity.Entity> entities = new ArrayList<>(); for (Entity ent : ents) { if (region.contains(BukkitAdapter.asBlockVector(ent.getLocation()))) { entities.add(BukkitAdapter.adapt(ent)); } } return entities; }
@EventHandler(ignoreCancelled = true) public void onBreakBlock(final BreakBlockEvent event) { final Player player = event.getCause().getFirstPlayer(); if (player == null) { return; } final LocalPlayer localPlayer = getPlugin().wrapPlayer(player); final WorldConfiguration wcfg = getWorldConfig(localPlayer); // Blacklist guard if (wcfg.getBlacklist() == null) { return; } event.filter(target -> { if (!wcfg.getBlacklist().check( new BlockBreakBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(target), createTarget(target.getBlock(), event.getEffectiveMaterial())), false, false)) { return false; } else if (!wcfg.getBlacklist().check( new ItemDestroyWithBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(target), createTarget(player.getItemInHand())), false, false)) { return false; } return true; }); }
@EventHandler(ignoreCancelled = true) public void onUseBlock(final UseBlockEvent event) { Player player = event.getCause().getFirstPlayer(); if (player == null) { return; } final LocalPlayer localPlayer = getPlugin().wrapPlayer(player); final WorldConfiguration wcfg = getWorldConfig(localPlayer); // Blacklist guard if (wcfg.getBlacklist() == null) { return; } event.filter(target -> wcfg.getBlacklist().check(new BlockInteractBlacklistEvent( localPlayer, BukkitAdapter.asBlockVector(target), createTarget(target.getBlock(), event.getEffectiveMaterial())), false, false)); }
@EventHandler(ignoreCancelled = true) public void onPlaceBlock(final PlaceBlockEvent event) { Player player = event.getCause().getFirstPlayer(); if (player == null) { return; } final LocalPlayer localPlayer = getPlugin().wrapPlayer(player); final WorldConfiguration wcfg = getWorldConfig(localPlayer); // Blacklist guard if (wcfg.getBlacklist() == null) { return; } event.filter(target -> wcfg.getBlacklist().check(new BlockPlaceBlacklistEvent( localPlayer, BukkitAdapter.asBlockVector(target), createTarget(target.getBlock(), event.getEffectiveMaterial())), false, false)); }
@EventHandler(ignoreCancelled = true) public void onUseItem(UseItemEvent event) { Player player = event.getCause().getFirstPlayer(); if (player == null) { return; } LocalPlayer localPlayer = getPlugin().wrapPlayer(player); ItemStack target = event.getItemStack(); WorldConfiguration wcfg = getWorldConfig(localPlayer); // Blacklist guard if (wcfg.getBlacklist() == null) { return; } if (!wcfg.getBlacklist().check(new ItemUseBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(player.getLocation()), createTarget(target)), false, false)) { event.setCancelled(true); } }
@EventHandler(ignoreCancelled = true) public void onBlockDispense(BlockDispenseEvent event) { ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(BukkitAdapter.adapt(event.getBlock().getWorld())); if (wcfg.getBlacklist() != null) { if (!wcfg.getBlacklist().check(new BlockDispenseBlacklistEvent(null, BukkitAdapter.asBlockVector(event.getBlock().getLocation()), createTarget(event.getItem())), false, false)) { event.setCancelled(true); } } }
@EventHandler(ignoreCancelled = true) public void onDestroyEntity(DestroyEntityEvent event) { Player player = event.getCause().getFirstPlayer(); if (player == null) { return; } LocalPlayer localPlayer = getPlugin().wrapPlayer(player); Entity target = event.getEntity(); WorldConfiguration wcfg = getWorldConfig(localPlayer); // Blacklist guard if (wcfg.getBlacklist() == null) { return; } if (target instanceof Item) { Item item = (Item) target; if (!wcfg.getBlacklist().check( new ItemAcquireBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(target.getLocation()), createTarget(item.getItemStack())), false, true)) { event.setCancelled(true); return; } } Material material = Materials.getRelatedMaterial(target.getType()); if (material != null) { // Not really a block but we only have one on-break blacklist event if (!wcfg.getBlacklist().check(new BlockBreakBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(event.getTarget()), createTarget(material)), false, false)) { event.setCancelled(true); } } }
@EventHandler(ignoreCancelled = true) public void onInventoryClick(InventoryClickEvent event) { HumanEntity entity = event.getWhoClicked(); Inventory inventory = event.getInventory(); ItemStack item = event.getCurrentItem(); if (item != null && inventory != null && inventory.getHolder() != null && entity instanceof Player) { Player player = (Player) entity; ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(BukkitAdapter.adapt(entity.getWorld())); LocalPlayer localPlayer = getPlugin().wrapPlayer(player); if (wcfg.getBlacklist() != null && !wcfg.getBlacklist().check( new ItemAcquireBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(entity.getLocation()), createTarget(item)), false, false)) { event.setCancelled(true); if (inventory.getHolder().equals(player)) { event.setCurrentItem(null); } } } }
@EventHandler(ignoreCancelled = true) public void onSpawnEntity(SpawnEntityEvent event) { Player player = event.getCause().getFirstPlayer(); if (player == null) { return; } LocalPlayer localPlayer = getPlugin().wrapPlayer(player); WorldConfiguration wcfg = getWorldConfig(localPlayer); // Blacklist guard if (wcfg.getBlacklist() == null) { return; } Material material = Materials.getRelatedMaterial(event.getEffectiveType()); if (material != null) { if (!wcfg.getBlacklist().check(new ItemUseBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(event.getTarget()), createTarget(material)), false, false)) { event.setCancelled(true); } } }
@EventHandler(ignoreCancelled = true) public void onPlayerDropItem(PlayerDropItemEvent event) { ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(BukkitAdapter.adapt(event.getPlayer().getWorld())); if (wcfg.getBlacklist() != null) { Item ci = event.getItemDrop(); if (!wcfg.getBlacklist().check( new ItemDropBlacklistEvent(getPlugin().wrapPlayer(event.getPlayer()), BukkitAdapter.asBlockVector(ci.getLocation()), createTarget(ci.getItemStack())), false, false)) { event.setCancelled(true); } } }
@EventHandler(ignoreCancelled = true) public void onInventoryCreative(InventoryCreativeEvent event) { HumanEntity entity = event.getWhoClicked(); ItemStack item = event.getCursor(); if (item != null && entity instanceof Player) { Player player = (Player) entity; ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(BukkitAdapter.adapt(entity.getWorld())); LocalPlayer localPlayer = getPlugin().wrapPlayer(player); if (wcfg.getBlacklist() != null && !wcfg.getBlacklist().check( new ItemAcquireBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(entity.getLocation()), createTarget(item)), false, false)) { event.setCancelled(true); event.setCursor(null); } } }
@EventHandler(ignoreCancelled = true) public void onPlayerItemHeld(PlayerItemHeldEvent event) { Player player = event.getPlayer(); Inventory inventory = player.getInventory(); ItemStack item = inventory.getItem(event.getNewSlot()); if (item != null) { ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(BukkitAdapter.adapt(player.getWorld())); LocalPlayer localPlayer = getPlugin().wrapPlayer(player); if (wcfg.getBlacklist() != null && !wcfg.getBlacklist().check( new ItemAcquireBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(player.getLocation()), createTarget(item)), false, false)) { inventory.setItem(event.getNewSlot(), null); } } }