use of com.sk89q.worldedit.world.World in project Prism-Bukkit by prism.
the class WorldEditBridge method getSelectedArea.
/**
*
* @param plugin
* @param player
* @param parameters
* @return
*/
public static boolean getSelectedArea(Prism plugin, Player player, QueryParameters parameters) {
// Get selected area
Region region;
try {
final LocalPlayer lp = new BukkitPlayer(Prism.plugin_worldEdit, Prism.plugin_worldEdit.getWorldEdit().getServer(), player);
final World lw = lp.getWorld();
region = Prism.plugin_worldEdit.getWorldEdit().getSession(lp).getSelection(lw);
} catch (final IncompleteRegionException e) {
return false;
}
// Set WorldEdit locations
final Vector minLoc = new Vector(region.getMinimumPoint().getX(), region.getMinimumPoint().getY(), region.getMinimumPoint().getZ());
final Vector maxLoc = new Vector(region.getMaximumPoint().getX(), region.getMaximumPoint().getY(), region.getMaximumPoint().getZ());
// Check selection against max radius
final Selection sel = Prism.plugin_worldEdit.getSelection(player);
final double lRadius = Math.ceil(sel.getLength() / 2);
final double wRadius = Math.ceil(sel.getWidth() / 2);
final double hRadius = Math.ceil(sel.getHeight() / 2);
String procType = "applier";
if (parameters.getProcessType().equals(PrismProcessType.LOOKUP)) {
procType = "lookup";
}
final int maxRadius = plugin.getConfig().getInt("prism.queries.max-" + procType + "-radius");
if (maxRadius != 0 && (lRadius > maxRadius || wRadius > maxRadius || hRadius > maxRadius) && !player.hasPermission("prism.override-max-" + procType + "-radius")) {
return false;
} else {
parameters.setWorld(region.getWorld().getName());
parameters.setMinLocation(minLoc);
parameters.setMaxLocation(maxLoc);
}
return true;
}
use of com.sk89q.worldedit.world.World in project Prism-Bukkit by prism.
the class WorldEditBridge method getSelectedArea.
/**
* Worldedit bridge.
*
* @param plugin Prism
* @param player Player
* @param parameters {@link QueryParameters}
* @return boolean.
*/
public static boolean getSelectedArea(Plugin plugin, Player player, QueryParameters parameters) {
// Get selected area
Region region = null;
try {
final BukkitPlayer lp = BukkitAdapter.adapt(player);
final World lw = lp.getWorld();
LocalSession session = WorldEdit.getInstance().getSessionManager().getIfPresent(lp);
if (session != null) {
region = session.getSelection(lw);
}
if (region == null) {
return false;
}
final Vector minLoc = new Vector(region.getMinimumPoint().getX(), region.getMinimumPoint().getY(), region.getMinimumPoint().getZ());
final Vector maxLoc = new Vector(region.getMaximumPoint().getX(), region.getMaximumPoint().getY(), region.getMaximumPoint().getZ());
final Region sel = session.getRegionSelector(lw).getRegion();
final double lRadius = ((float) sel.getLength() + 1) / 2;
final double wRadius = ((float) sel.getWidth() + 1) / 2;
final double hRadius = ((float) sel.getHeight() + 1) / 2;
String procType = "applier";
if (parameters.getProcessType().equals(PrismProcessType.LOOKUP)) {
procType = "lookup";
}
final int maxRadius = plugin.getConfig().getInt("prism.queries.max-" + procType + "-radius");
if (maxRadius != 0 && (lRadius > maxRadius || wRadius > maxRadius || hRadius > maxRadius) && !player.hasPermission("prism.override-max-" + procType + "-radius")) {
return false;
} else {
parameters.setWorld(region.getWorld().getName());
parameters.setMinLocation(minLoc);
parameters.setMaxLocation(maxLoc);
}
} catch (final IncompleteRegionException e) {
return false;
}
return true;
}
use of com.sk89q.worldedit.world.World in project FunnyGuilds by FunnyGuilds.
the class SchematicHelper method pasteSchematic.
public static boolean pasteSchematic(File schematicFile, Location location, boolean withAir) {
try {
Vector pasteLocation = new Vector(location.getX(), location.getY(), location.getZ());
World pasteWorld = new BukkitWorld(location.getWorld());
WorldData pasteWorldData = pasteWorld.getWorldData();
Clipboard clipboard = ClipboardFormat.SCHEMATIC.getReader(new FileInputStream(schematicFile)).read(pasteWorldData);
Region pasteRegion = clipboard.getRegion();
Extent pasteExtent = WorldEdit.getInstance().getEditSessionFactory().getEditSession(pasteWorld, -1);
AffineTransform transform = new AffineTransform();
ForwardExtentCopy copy = new ForwardExtentCopy(pasteExtent, pasteRegion, clipboard.getOrigin(), pasteExtent, pasteLocation);
if (!transform.isIdentity()) {
copy.setTransform(transform);
}
if (!withAir) {
copy.setSourceMask(new ExistingBlockMask(clipboard));
}
Operations.completeLegacy(copy);
return true;
} catch (IOException | MaxChangedBlocksException e) {
FunnyLogger.exception(e);
return false;
}
}
Aggregations