fixed auto/purge

This commit is contained in:
Jesse Boyd 2015-01-15 23:04:55 -08:00
parent 6a238fe099
commit 8e8ff6d3aa
3 changed files with 23 additions and 12 deletions

View File

@ -201,7 +201,7 @@ public class Auto extends SubCommand {
}
public PlotId getLastPlot(String world) {
if (PlotHelper.lastPlot == null) {
if (PlotHelper.lastPlot == null || !PlotHelper.lastPlot.containsKey(world)) {
PlotHelper.lastPlot.put(world, new PlotId(0,0));
}
return PlotHelper.lastPlot.get(world);

View File

@ -38,7 +38,7 @@ import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.util.PlayerFunctions;
import com.intellectualcrafters.plot.util.UUIDHandler;
@SuppressWarnings({"unused", "deprecated", "javadoc"}) public class Purge extends SubCommand {
@SuppressWarnings({"javadoc"}) public class Purge extends SubCommand {
public Purge() {
super("purge", "plots.admin", "Purge all plots for a world", "purge", "", CommandCategory.DEBUG, false);
@ -124,6 +124,9 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
}
if (arg.equals("all")) {
Set<PlotId> ids = PlotMain.getPlots(world).keySet();
if (ids.size() == 0) {
return PlayerFunctions.sendMessage(null, "&cNo plots found");
}
DBFunc.purge(worldname, ids);
return finishPurge(ids.size());
}
@ -138,6 +141,9 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
}
}
}
if (ids.size() == 0) {
return PlayerFunctions.sendMessage(null, "&cNo plots found");
}
DBFunc.purge(worldname, ids);
return finishPurge(ids.size());
}
@ -149,6 +155,9 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
ids.add(plot.id);
}
}
if (ids.size() == 0) {
return PlayerFunctions.sendMessage(null, "&cNo plots found");
}
DBFunc.purge(worldname, ids);
return finishPurge(ids.size());
}

View File

@ -831,37 +831,36 @@ public class SQLManager implements AbstractDB {
}
/**
* Purge all plots with the f ollowing database IDs
* Purge all plots with the following database IDs
*/
public void purgeIds(final String world, final Set<Integer> uniqueIds) {
if (uniqueIds.size() > 0) {
try {
String prefix = "";
String stmt_prefix = "";
final StringBuilder idstr = new StringBuilder("");
for (final Integer id : uniqueIds) {
idstr.append(prefix + id);
prefix = " OR `plot_plot_id` = ";
idstr.append(stmt_prefix + id);
stmt_prefix = " OR `plot_plot_id` = ";
}
PreparedStatement stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + prefix + "plot_helpers` WHERE `plot_plot_id` = " + idstr + "");
PreparedStatement stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + this.prefix + "plot_helpers` WHERE `plot_plot_id` = " + idstr + "");
stmt.executeUpdate();
stmt.close();
stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + prefix + "plot_denied` WHERE `plot_plot_id` = " + idstr + "");
stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + this.prefix + "plot_denied` WHERE `plot_plot_id` = " + idstr + "");
stmt.executeUpdate();
stmt.close();
stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + prefix + "plot_settings` WHERE `plot_plot_id` = " + idstr + "");
stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + this.prefix + "plot_settings` WHERE `plot_plot_id` = " + idstr + "");
stmt.executeUpdate();
stmt.close();
stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + prefix + "plot_trusted` WHERE `plot_plot_id` = " + idstr + "");
stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + this.prefix + "plot_trusted` WHERE `plot_plot_id` = " + idstr + "");
stmt.executeUpdate();
stmt.close();
stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + prefix + "plot` WHERE `world` = ?");
stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + this.prefix + "plot` WHERE `world` = ?");
stmt.setString(1, world);
stmt.executeUpdate();
stmt.close();
@ -875,6 +874,9 @@ public class SQLManager implements AbstractDB {
}
@Override
public void purge(final String world, Set<PlotId> plots) {
for (PlotId id : plots) {
PlotMain.removePlot(world, id, true);
}
PreparedStatement stmt;
try {
stmt = SQLManager.this.connection.prepareStatement("SELECT `id`, `plot_id_x`, `plot_id_z` FROM `" + this.prefix + "plot` WHERE `world` = ?");