more cmds

This commit is contained in:
boy0001 2015-02-22 23:57:59 +11:00
parent cdf45c7efc
commit c4d017cc06
4 changed files with 38 additions and 81 deletions

View File

@ -28,15 +28,15 @@ import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import org.bukkit.Bukkit;
import com.intellectualcrafters.plot.PlotSquared; import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C; import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.object.ChunkLoc; import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId; import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.AChunkManager; import com.intellectualcrafters.plot.util.AChunkManager;
import com.intellectualcrafters.plot.util.BlockManager;
import com.intellectualcrafters.plot.util.MainUtil; import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.TaskManager; import com.intellectualcrafters.plot.util.TaskManager;
import com.intellectualcrafters.plot.util.bukkit.ChunkManager; import com.intellectualcrafters.plot.util.bukkit.ChunkManager;
@ -87,8 +87,8 @@ public class Trim extends SubCommand {
MainUtil.sendMessage(plr, C.TRIM_SYNTAX); MainUtil.sendMessage(plr, C.TRIM_SYNTAX);
return false; return false;
} }
final World world = Bukkit.getWorld(args[1]); final String world = args[1];
if ((world == null) || (PlotSquared.getPlotWorld(world) == null)) { if (!BlockManager.manager.isWorld(world) || (PlotSquared.getPlotWorld(world) == null)) {
MainUtil.sendMessage(plr, C.NOT_VALID_WORLD); MainUtil.sendMessage(plr, C.NOT_VALID_WORLD);
return false; return false;
} }
@ -107,14 +107,14 @@ public class Trim extends SubCommand {
return true; return true;
} }
public static boolean getBulkRegions(final ArrayList<ChunkLoc> empty, final World world, final Runnable whenDone) { public static boolean getBulkRegions(final ArrayList<ChunkLoc> empty, final String world, final Runnable whenDone) {
if (Trim.TASK) { if (Trim.TASK) {
return false; return false;
} }
TaskManager.runTaskAsync(new Runnable() { TaskManager.runTaskAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
final String directory = world.getName() + File.separator + "region"; final String directory = world + File.separator + "region";
final File folder = new File(directory); final File folder = new File(directory);
final File[] regionFiles = folder.listFiles(); final File[] regionFiles = folder.listFiles();
for (final File file : regionFiles) { for (final File file : regionFiles) {
@ -173,7 +173,7 @@ public class Trim extends SubCommand {
sendMessage(" - MCA #: " + chunks.size()); sendMessage(" - MCA #: " + chunks.size());
sendMessage(" - CHUNKS: " + (chunks.size() * 1024) + " (max)"); sendMessage(" - CHUNKS: " + (chunks.size() * 1024) + " (max)");
sendMessage(" - TIME ESTIMATE: " + (chunks.size() / 1200) + " minutes"); sendMessage(" - TIME ESTIMATE: " + (chunks.size() / 1200) + " minutes");
Trim.TASK_ID = Bukkit.getScheduler().scheduleSyncRepeatingTask(PlotSquared.getMain(), new Runnable() { Trim.TASK_ID = TaskManager.runTaskRepeat(new Runnable() {
@Override @Override
public void run() { public void run() {
final long start = System.currentTimeMillis(); final long start = System.currentTimeMillis();
@ -183,62 +183,31 @@ public class Trim extends SubCommand {
System.out.print("DONE!"); System.out.print("DONE!");
Trim.TASK = false; Trim.TASK = false;
TaskManager.runTaskAsync(whenDone); TaskManager.runTaskAsync(whenDone);
Bukkit.getScheduler().cancelTask(Trim.TASK_ID); PlotSquared.TASK.cancelTask(Trim.TASK_ID);
return; return;
} }
final Plot plot = plots.get(0); final Plot plot = plots.get(0);
plots.remove(0); plots.remove(0);
final Location pos1 = MainUtil.getPlotBottomLoc(world, plot.id); final Location pos1 = MainUtil.getPlotBottomLoc(world, plot.id);
final Location pos2 = MainUtil.getPlotTopLoc(world, plot.id); final Location pos2 = MainUtil.getPlotTopLoc(world, plot.id);
final Location pos3 = new Location(world, pos1.getBlockX(), 64, pos2.getBlockZ()); final Location pos3 = new Location(world, pos1.getX(), 64, pos2.getZ());
final Location pos4 = new Location(world, pos2.getBlockX(), 64, pos1.getBlockZ()); final Location pos4 = new Location(world, pos2.getX(), 64, pos1.getZ());
chunks.remove(ChunkManager.getChunkChunk(pos1)); chunks.remove(ChunkManager.getChunkChunk(pos1));
chunks.remove(ChunkManager.getChunkChunk(pos2)); chunks.remove(ChunkManager.getChunkChunk(pos2));
chunks.remove(ChunkManager.getChunkChunk(pos3)); chunks.remove(ChunkManager.getChunkChunk(pos3));
chunks.remove(ChunkManager.getChunkChunk(pos4)); chunks.remove(ChunkManager.getChunkChunk(pos4));
} }
} }
}, 20L, 20L); }, 20);
Trim.TASK = true; Trim.TASK = true;
return true; return true;
} }
public static ArrayList<Plot> expired = null; public static ArrayList<Plot> expired = null;
// public static void updateUnmodifiedPlots(final World world) { public static void deleteChunks(final String world, final ArrayList<ChunkLoc> chunks) {
// final SquarePlotManager manager = (SquarePlotManager) PlotSquared.getPlotManager(world);
// final SquarePlotWorld plotworld = (SquarePlotWorld) PlotSquared.getPlotWorld(world);
// final ArrayList<Plot> expired = new ArrayList<>();
// final Set<Plot> plots = ExpireManager.getOldPlots(world.getName()).keySet();
// sendMessage("Checking " + plots.size() +" plots! This may take a long time...");
// Trim.TASK_ID = Bukkit.getScheduler().scheduleSyncRepeatingTask(PlotSquared.getMain(), new Runnable() {
// @Override
// public void run() {
// if (manager != null && plots.size() > 0) {
// Plot plot = plots.iterator().next();
// if (plot.hasOwner()) {
// SquarePlotManager.checkModified(plot, 0);
// }
// if (plot.owner == null || !SquarePlotManager.checkModified(plot, plotworld.REQUIRED_CHANGES)) {
// expired.add(plot);
// sendMessage("found expired: " + plot);
// }
// }
// else {
// Trim.expired = expired;
// Trim.TASK = false;
// sendMessage("Done!");
// Bukkit.getScheduler().cancelTask(Trim.TASK_ID);
// return;
// }
// }
// }, 1, 1);
// }
//
public static void deleteChunks(final World world, final ArrayList<ChunkLoc> chunks) {
final String worldname = world.getName();
for (final ChunkLoc loc : chunks) { for (final ChunkLoc loc : chunks) {
ChunkManager.deleteRegionFile(worldname, loc); AChunkManager.manager.deleteRegionFile(world, loc);
} }
} }

View File

@ -31,6 +31,7 @@ import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.MainUtil; import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.Permissions;
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler; import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@ -84,8 +85,7 @@ public class Trusted extends SubCommand {
} }
plot.addTrusted(uuid); plot.addTrusted(uuid);
DBFunc.setTrusted(loc.getWorld(), plot, uuid); DBFunc.setTrusted(loc.getWorld(), plot, uuid);
final PlayerPlotTrustedEvent event = new PlayerPlotTrustedEvent(plr, plot, uuid, true); // FIXME PlayerPlotTrustedEvent
Bukkit.getPluginManager().callEvent(event);
} else { } else {
MainUtil.sendMessage(plr, C.ALREADY_ADDED); MainUtil.sendMessage(plr, C.ALREADY_ADDED);
return false; return false;
@ -107,8 +107,7 @@ public class Trusted extends SubCommand {
final UUID uuid = UUIDHandler.getUUID(args[1]); final UUID uuid = UUIDHandler.getUUID(args[1]);
plot.removeTrusted(uuid); plot.removeTrusted(uuid);
DBFunc.removeTrusted(loc.getWorld(), plot, uuid); DBFunc.removeTrusted(loc.getWorld(), plot, uuid);
final PlayerPlotTrustedEvent event = new PlayerPlotTrustedEvent(plr, plot, uuid, false); // FIXME PlayerPlotTrustedEvent
Bukkit.getPluginManager().callEvent(event);
MainUtil.sendMessage(plr, C.TRUSTED_REMOVED); MainUtil.sendMessage(plr, C.TRUSTED_REMOVED);
} else { } else {
MainUtil.sendMessage(plr, C.TRUSTED_NEED_ARGUMENT); MainUtil.sendMessage(plr, C.TRUSTED_NEED_ARGUMENT);

View File

@ -29,7 +29,9 @@ import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld; import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.util.EconHandler;
import com.intellectualcrafters.plot.util.MainUtil; import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.Permissions;
import com.intellectualcrafters.plot.util.bukkit.BukkitPlayerFunctions; import com.intellectualcrafters.plot.util.bukkit.BukkitPlayerFunctions;
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler; import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
@ -45,7 +47,7 @@ public class Unclaim extends SubCommand {
if (plot == null) { if (plot == null) {
return !sendMessage(plr, C.NOT_IN_PLOT); return !sendMessage(plr, C.NOT_IN_PLOT);
} }
if (!MainUtil.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) { if (!MainUtil.getTopPlot(plot).equals(MainUtil.getBottomPlot(plot))) {
return !sendMessage(plr, C.UNLINK_REQUIRED); return !sendMessage(plr, C.UNLINK_REQUIRED);
} }
if ((((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr)))) && !Permissions.hasPermission(plr, "plots.admin.command.unclaim")) { if ((((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr)))) && !Permissions.hasPermission(plr, "plots.admin.command.unclaim")) {
@ -53,19 +55,18 @@ public class Unclaim extends SubCommand {
} }
assert plot != null; assert plot != null;
final PlotWorld pWorld = PlotSquared.getPlotWorld(plot.world); final PlotWorld pWorld = PlotSquared.getPlotWorld(plot.world);
if (PlotSquared.useEconomy && pWorld.USE_ECONOMY) { if (PlotSquared.economy != null && pWorld.USE_ECONOMY) {
final double c = pWorld.SELL_PRICE; final double c = pWorld.SELL_PRICE;
if (c > 0d) { if (c > 0d) {
final Economy economy = PlotSquared.economy; final Economy economy = PlotSquared.economy;
economy.depositPlayer(plr, c); EconHandler.depositPlayer(plr, c);
sendMessage(plr, C.ADDED_BALANCE, c + ""); sendMessage(plr, C.ADDED_BALANCE, c + "");
} }
} }
final boolean result = PlotSquared.removePlot(loc.getWorld(), plot.id, true); final boolean result = PlotSquared.removePlot(loc.getWorld(), plot.id, true);
if (result) { if (result) {
final World world = plr.getWorld(); final String worldname = plr.getLocation().getWorld();
final String worldname = world.getName(); PlotSquared.getPlotManager(worldname).unclaimPlot(pWorld, plot);
PlotSquared.getPlotManager(world).unclaimPlot(world, pWorld, plot);
DBFunc.delete(worldname, plot); DBFunc.delete(worldname, plot);
// TODO set wall block // TODO set wall block
} else { } else {

View File

@ -35,6 +35,7 @@ import com.intellectualcrafters.plot.object.PlotManager;
import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld; import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.util.MainUtil; import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.Permissions;
import com.intellectualcrafters.plot.util.bukkit.BukkitPlayerFunctions; import com.intellectualcrafters.plot.util.bukkit.BukkitPlayerFunctions;
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler; import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
@ -58,41 +59,28 @@ public class Unlink extends SubCommand {
if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.unlink")) { if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.unlink")) {
return sendMessage(plr, C.NO_PLOT_PERMS); return sendMessage(plr, C.NO_PLOT_PERMS);
} }
if (MainUtil.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) { if (MainUtil.getTopPlot(plot).equals(MainUtil.getBottomPlot(plot))) {
return sendMessage(plr, C.UNLINK_IMPOSSIBLE); return sendMessage(plr, C.UNLINK_IMPOSSIBLE);
} }
final World world = plr.getWorld(); final String world = plr.getLocation().getWorld();
if (!unlinkPlot(world, plot)) { if (!unlinkPlot(plot)) {
MainUtil.sendMessage(plr, "&cUnlink has been cancelled"); MainUtil.sendMessage(plr, "&cUnlink has been cancelled");
return false; return false;
} }
try { MainUtil.update(plr.getLocation());
MainUtil.update(plr.getLocation());
} catch (final Exception e) {
// execute(final PlotPlayer plr, final String... args) {
try {
PlotSquared.log("Error on: " + getClass().getMethod("execute", Player.class, String[].class).toGenericString() + ":119, when trying to use \"SetBlockFast#update\"");
} catch (final Exception ex) {
ex.printStackTrace();
}
}
MainUtil.sendMessage(plr, "&6Plots unlinked successfully!"); MainUtil.sendMessage(plr, "&6Plots unlinked successfully!");
return true; return true;
} }
public static boolean unlinkPlot(final World world, final Plot plot) { public static boolean unlinkPlot(final Plot plot) {
final PlotId pos1 = BukkitPlayerFunctions.getBottomPlot(world, plot).id; String world = plot.world;
final PlotId pos2 = MainUtil.getTopPlot(world, plot).id; final PlotId pos1 = MainUtil.getBottomPlot(plot).id;
final PlotId pos2 = MainUtil.getTopPlot(plot).id;
final ArrayList<PlotId> ids = MainUtil.getPlotSelectionIds(pos1, pos2); final ArrayList<PlotId> ids = MainUtil.getPlotSelectionIds(pos1, pos2);
final PlotUnlinkEvent event = new PlotUnlinkEvent(world, ids); // FIXME PlotUnlinkEvent (cancellable)
Bukkit.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
event.setCancelled(true);
return false;
}
final PlotManager manager = PlotSquared.getPlotManager(world); final PlotManager manager = PlotSquared.getPlotManager(world);
final PlotWorld plotworld = PlotSquared.getPlotWorld(world); final PlotWorld plotworld = PlotSquared.getPlotWorld(world);
manager.startPlotUnlink(world, plotworld, ids); manager.startPlotUnlink(plotworld, ids);
for (final PlotId id : ids) { for (final PlotId id : ids) {
final Plot myplot = PlotSquared.getPlots(world).get(id); final Plot myplot = PlotSquared.getPlots(world).get(id);
if (plot == null) { if (plot == null) {
@ -106,7 +94,7 @@ public class Unlink extends SubCommand {
} }
myplot.deny_entry = plot.deny_entry; myplot.deny_entry = plot.deny_entry;
myplot.settings.setMerged(new boolean[] { false, false, false, false }); myplot.settings.setMerged(new boolean[] { false, false, false, false });
DBFunc.setMerged(world.getName(), myplot, myplot.settings.getMerged()); DBFunc.setMerged(world, myplot, myplot.settings.getMerged());
} }
for (int x = pos1.x; x <= pos2.x; x++) { for (int x = pos1.x; x <= pos2.x; x++) {
for (int y = pos1.y; y <= pos2.y; y++) { for (int y = pos1.y; y <= pos2.y; y++) {
@ -122,16 +110,16 @@ public class Unlink extends SubCommand {
if (ly) { if (ly) {
manager.createRoadSouth(plotworld, p); manager.createRoadSouth(plotworld, p);
} }
MainUtil.setSign(world, UUIDHandler.getName(plot.owner), plot); MainUtil.setSign(UUIDHandler.getName(plot.owner), plot);
} }
} }
manager.finishPlotUnlink(world, plotworld, ids); manager.finishPlotUnlink(plotworld, ids);
for (final PlotId id : ids) { for (final PlotId id : ids) {
final Plot myPlot = MainUtil.getPlot(world, id); final Plot myPlot = MainUtil.getPlot(world, id);
if (plot.hasOwner()) { if (plot.hasOwner()) {
final String name = UUIDHandler.getName(myPlot.owner); final String name = UUIDHandler.getName(myPlot.owner);
if (name != null) { if (name != null) {
MainUtil.setSign(world, name, myPlot); MainUtil.setSign(name, myPlot);
} }
} }
} }