@Override public List<com.sk89q.worldedit.world.World> getWorlds() { List<World> worlds = server.getWorlds(); List<com.sk89q.worldedit.world.World> ret = new ArrayList<>(worlds.size()); for (World world : worlds) { ret.add(BukkitAdapter.adapt(world)); } return ret; }
@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; }
@Override public BaseBlock getBlockInHand(HandSide handSide) throws WorldEditException { ItemStack itemStack = handSide == HandSide.MAIN_HAND ? player.getInventory().getItemInMainHand() : player.getInventory().getItemInOffHand(); return BukkitAdapter.asBlockState(itemStack).toBaseBlock(); }
/** * Create a WorldEdit location from a Bukkit location. * * @param location the Bukkit location * @return a WorldEdit location */ public static Location adapt(org.bukkit.Location location) { checkNotNull(location); Vector3 position = asVector(location); return new com.sk89q.worldedit.util.Location( adapt(location.getWorld()), position, location.getYaw(), location.getPitch()); }
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) public void onLightningStrike(LightningStrikeEvent event) { ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(BukkitAdapter.adapt(event.getWorld())); if (wcfg.disallowedLightningBlocks.size() > 0) { Material targetId = event.getLightning().getLocation().getBlock().getType(); if (wcfg.disallowedLightningBlocks.contains(BukkitAdapter.asBlockType(targetId).getId())) { event.setCancelled(true); } } Location loc = event.getLightning().getLocation(); if (wcfg.useRegions) { if (!StateFlag.test(WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery().queryState(BukkitAdapter.adapt(loc), (RegionAssociable) null, Flags.LIGHTNING))) { event.setCancelled(true); } } } }
@Override public BlockVector3 getSpawnPosition() { return BukkitAdapter.asBlockVector(getWorld().getSpawnLocation()); }
/** * Get a blacklist target for the given material. * * @param material the material * @return a target */ public static Target createTarget(Material material) { checkNotNull(material); if (material.isBlock()) { return new BlockTarget(BukkitAdapter.asBlockType(material)); } else { return new ItemTarget(BukkitAdapter.asItemType(material)); } } }
public boolean test(Block block) { return test(new BlockTarget(BukkitAdapter.asBlockType(block.getType()))); }
@Override public com.sk89q.worldedit.util.Location getLocation() { Location nativeLocation = player.getLocation(); Vector3 position = BukkitAdapter.asVector(nativeLocation); return new com.sk89q.worldedit.util.Location( getWorld(), position, nativeLocation.getYaw(), nativeLocation.getPitch()); }
public boolean test(ItemStack itemStack) { return test(new ItemTarget(BukkitAdapter.asItemType(itemStack.getType()))); }
@EventHandler(ignoreCancelled = true) public void onPlaceBlock(final PlaceBlockEvent event) { final Player player = event.getCause().getFirstPlayer(); if (player != null) { final BukkitWorldConfiguration wcfg = (BukkitWorldConfiguration) getWorldConfig(WorldGuardPlugin.inst().wrapPlayer(player)); // Early guard if (!wcfg.signChestProtection) { return; } event.filter(target -> { if (wcfg.getChestProtection().isChest(BukkitAdapter.asBlockType(event.getEffectiveMaterial())) && wcfg.isChestProtected(BukkitAdapter.adapt(target.getBlock().getLocation()), WorldGuardPlugin.inst().wrapPlayer(player))) { sendMessage(event, player, ChatColor.DARK_RED + "This spot is for a chest that you don't have permission for."); return false; } return true; }, true); } }
@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; }); }
public boolean test(Material material) { if (material.isBlock()) { return test(new BlockTarget(BukkitAdapter.asBlockType(material))); } else { return test(new ItemTarget(BukkitAdapter.asItemType(material))); } }
public boolean test(BlockState state) { return test(new BlockTarget(BukkitAdapter.asBlockType(state.getType()))); }
@Override public boolean setLocation(Location location) { org.bukkit.entity.Entity entity = entityRef.get(); if (entity != null) { return entity.teleport(BukkitAdapter.adapt(location)); } else { return false; } }
@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); } } }
int z = block.getZ(); if (wcfg.disableFireSpreadBlocks.contains(BukkitAdapter.asBlockType(world.getBlockAt(x, y - 1, z).getType()).getId()) || wcfg.disableFireSpreadBlocks.contains(BukkitAdapter.asBlockType(world.getBlockAt(x + 1, y, z).getType()).getId()) || wcfg.disableFireSpreadBlocks.contains(BukkitAdapter.asBlockType(world.getBlockAt(x - 1, y, z).getType()).getId()) || wcfg.disableFireSpreadBlocks.contains(BukkitAdapter.asBlockType(world.getBlockAt(x, y, z - 1).getType()).getId()) || wcfg.disableFireSpreadBlocks.contains(BukkitAdapter.asBlockType(world.getBlockAt(x, y, z + 1).getType()).getId())) { event.setCancelled(true); return; WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery().getApplicableRegions(BukkitAdapter.adapt(block.getLocation()));
@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)); }