use of com.sk89q.worldedit.bukkit.BukkitPlayer 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.bukkit.BukkitPlayer in project HawkEye by oliverwoodings.
the class WorldEditRollbackCommand method execute.
@Override
public boolean execute() {
//Check if player already has a rollback processing
if (session.doingRollback()) {
Util.sendMessage(sender, "&cYou already have a rollback command processing!");
return true;
}
//Check if WorldEdit is enabled
if (HawkEye.worldEdit == null) {
Util.sendMessage(sender, "&7WorldEdit&c is not enabled, unable to perform rollbacks in selected region");
return true;
}
//Check if the WorldEdit selection is complete
Region region = null;
try {
LocalPlayer lp = new BukkitPlayer(HawkEye.worldEdit, HawkEye.worldEdit.getWorldEdit().getServer(), player);
LocalWorld lw = lp.getWorld();
region = HawkEye.worldEdit.getWorldEdit().getSession(lp).getSelection(lw);
} catch (IncompleteRegionException e) {
Util.sendMessage(sender, "&cPlease complete your selection before doing a &7WorldEdit&c rollback!");
return true;
}
//Parse arguments
SearchParser parser = null;
try {
parser = new SearchParser(player, args);
//Check that supplied actions can rollback
if (parser.actions.size() > 0) {
for (DataType type : parser.actions) if (!type.canRollback())
throw new IllegalArgumentException("You cannot rollback that action type: &7" + type.getConfigName());
} else //If none supplied, add in all rollback types
{
for (DataType type : DataType.values()) if (type.canRollback())
parser.actions.add(type);
}
} catch (IllegalArgumentException e) {
Util.sendMessage(sender, "&c" + e.getMessage());
return true;
}
//Set WorldEdit locations
parser.minLoc = new Vector(region.getMinimumPoint().getX(), region.getMinimumPoint().getY(), region.getMinimumPoint().getZ());
parser.maxLoc = new Vector(region.getMaximumPoint().getX(), region.getMaximumPoint().getY(), region.getMaximumPoint().getZ());
//Create new SearchQuery with data
new SearchQuery(new RollbackCallback(session, RollbackType.GLOBAL), parser, SearchDir.DESC);
return true;
}
Aggregations