TF-PlotSquared/PlotSquared/src/com/intellectualcrafters/plot/PWE.java

117 lines
4.1 KiB
Java
Raw Normal View History

2014-09-22 13:02:14 +02:00
package com.intellectualcrafters.plot;
2014-10-01 18:01:41 +10:00
import com.intellectualcrafters.plot.database.DBFunc;
import com.sk89q.worldedit.*;
2014-10-01 18:01:41 +10:00
2014-09-22 13:02:14 +02:00
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import com.sk89q.worldedit.bukkit.BukkitPlayer;
import com.sk89q.worldedit.regions.CuboidRegion;
/**
*
* @author Citymonstret
*
2014-09-22 13:02:14 +02:00
*/
public class PWE {
@SuppressWarnings("unused")
public static void setMask(Player p, Location l) {
try {
LocalSession s;
if (PlotMain.worldEdit == null) {
s = WorldEdit.getInstance().getSession(p.getName());
} else {
s = PlotMain.worldEdit.getSession(p);
}
PlotId id = PlayerFunctions.getPlot(l);
if (id != null) {
Plot plot = PlotMain.getPlots(l.getWorld()).get(id);
if (plot!=null) {
boolean r;
r = plot.getOwner() != null && plot.getOwner().equals(p.getUniqueId());
if (!r) {
if (p.hasPermission("plots.worldedit.member") && (plot.helpers.contains(DBFunc.everyone) || plot.helpers.contains(p.getUniqueId()))) {
r = true;
} else if (p.hasPermission("plots.worldedit.bypass")) {
removeMask(p, s);
return;
}
}
else {
World w = p.getWorld();
Location bloc = PlotHelper.getPlotBottomLoc(w, plot.id);
Location tloc = PlotHelper.getPlotTopLoc(w, plot.id);
Vector bvec = new Vector(bloc.getBlockX() + 1, bloc.getBlockY() + 1, bloc.getBlockZ() + 1);
Vector tvec = new Vector(tloc.getBlockX(), tloc.getBlockY(), tloc.getBlockZ());
LocalWorld lw = PlotMain.worldEdit.wrapPlayer(p).getWorld();
CuboidRegion region = new CuboidRegion(lw, bvec, tvec);
com.sk89q.worldedit.masks.RegionMask mask = new com.sk89q.worldedit.masks.RegionMask(region);
s.setMask(mask);
return;
}
}
}
if (noMask(s)) {
System.out.print("NONE");
BukkitPlayer plr = PlotMain.worldEdit.wrapPlayer(p);
Vector p1 = new Vector(69, 69, 69), p2 = new Vector(69, 69, 69);
s.setMask(new com.sk89q.worldedit.masks.RegionMask(new CuboidRegion(plr.getWorld(), p1, p2)));
}
} catch(Exception e) {
throw new PlotSquaredException(PlotSquaredException.PlotError.MISSING_DEPENDENCY, "WorldEdit == Null?");
2014-09-22 13:02:14 +02:00
}
}
public static boolean noMask(LocalSession s) {
try {
com.sk89q.worldedit.masks.Mask mask = s.getMask();
return mask==null;
}
catch (Throwable e) {
return true;
}
}
public static void removeMask(Player p, LocalSession s) {
System.out.print(0);
try {
System.out.print(1);
s.setMask(null);
System.out.print(2);
}
catch (Throwable e) {
System.out.print(3);
com.sk89q.worldedit.masks.Mask mask = null;
s.setMask(mask);
System.out.print(4);
}
System.out.print(5);
}
public static void removeMask(Player p) {
try {
LocalSession s;
if(PlotMain.worldEdit == null) {
s = WorldEdit.getInstance().getSession(p.getName());
} else {
s = PlotMain.worldEdit.getSession(p);
}
removeMask(p, s);
} catch(Exception e) {
throw new PlotSquaredException(PlotSquaredException.PlotError.MISSING_DEPENDENCY, "WorldEdit == Null?");
}
}
2014-09-22 13:02:14 +02:00
}