This commit is contained in:
boy0001 2015-08-10 18:09:48 +10:00
parent e28c68ee74
commit a6d3c77d5a

View File

@ -84,7 +84,7 @@ public class SQLManager implements AbstractDB {
TaskManager.runTaskRepeat(new Runnable() { TaskManager.runTaskRepeat(new Runnable() {
@Override @Override
public void run() { public void run() {
commit(); SQLManager.this.commit();
} }
}, 200); }, 200);
this.prefix = p; this.prefix = p;
@ -111,7 +111,7 @@ public class SQLManager implements AbstractDB {
} }
}, 11000); }, 11000);
} }
updateTables(); this.updateTables();
} }
public Connection getConnection() { public Connection getConnection() {
@ -152,7 +152,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
// Create the plots // Create the plots
createPlots(myList, new Runnable() { SQLManager.this.createPlots(myList, new Runnable() {
@Override @Override
public void run() { public void run() {
try { try {
@ -167,7 +167,7 @@ public class SQLManager implements AbstractDB {
final ArrayList<UUIDPair> denied = new ArrayList<>(); final ArrayList<UUIDPair> denied = new ArrayList<>();
// Populating structures // Populating structures
final PreparedStatement stmt = connection.prepareStatement(GET_ALL_PLOTS); final PreparedStatement stmt = SQLManager.this.connection.prepareStatement(SQLManager.this.GET_ALL_PLOTS);
final ResultSet result = stmt.executeQuery(); final ResultSet result = stmt.executeQuery();
while (result.next()) { while (result.next()) {
final int id = result.getInt("id"); final int id = result.getInt("id");
@ -194,20 +194,20 @@ public class SQLManager implements AbstractDB {
} }
} }
} }
createSettings(settings, new Runnable() { SQLManager.this.createSettings(settings, new Runnable() {
@Override @Override
public void run() { public void run() {
createTiers(helpers, "helpers", new Runnable() { SQLManager.this.createTiers(helpers, "helpers", new Runnable() {
@Override @Override
public void run() { public void run() {
createTiers(trusted, "trusted", new Runnable() { SQLManager.this.createTiers(trusted, "trusted", new Runnable() {
@Override @Override
public void run() { public void run() {
createTiers(denied, "denied", new Runnable() { SQLManager.this.createTiers(denied, "denied", new Runnable() {
@Override @Override
public void run() { public void run() {
try { try {
connection.commit(); SQLManager.this.connection.commit();
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -225,7 +225,7 @@ public class SQLManager implements AbstractDB {
e.printStackTrace(); e.printStackTrace();
PS.debug("&7[WARN] " + "Failed to set all helpers for plots"); PS.debug("&7[WARN] " + "Failed to set all helpers for plots");
try { try {
connection.commit(); SQLManager.this.connection.commit();
} catch (SQLException e1) { } catch (SQLException e1) {
e1.printStackTrace(); e1.printStackTrace();
} }
@ -236,7 +236,7 @@ public class SQLManager implements AbstractDB {
e.printStackTrace(); e.printStackTrace();
PS.debug("&7[WARN] " + "Failed to set all helpers for plots"); PS.debug("&7[WARN] " + "Failed to set all helpers for plots");
try { try {
connection.commit(); SQLManager.this.connection.commit();
} catch (SQLException e1) { } catch (SQLException e1) {
e1.printStackTrace(); e1.printStackTrace();
} }
@ -254,13 +254,13 @@ public class SQLManager implements AbstractDB {
final StmtMod<UUIDPair> mod = new StmtMod<UUIDPair>() { final StmtMod<UUIDPair> mod = new StmtMod<UUIDPair>() {
@Override @Override
public String getCreateMySQL(int size) { public String getCreateMySQL(int size) {
return getCreateMySQL(size, CREATE_TIERS.replaceAll("%tier%", tier), 2); return this.getCreateMySQL(size, SQLManager.this.CREATE_TIERS.replaceAll("%tier%", tier), 2);
} }
@Override @Override
public String getCreateSQLite(int size) { public String getCreateSQLite(int size) {
return getCreateSQLite(size, return this.getCreateSQLite(size,
"INSERT INTO `" + prefix + "plot_" + tier + "` SELECT ? AS `plot_plot_id`, ? AS `user_uuid`", 2); "INSERT INTO `" + SQLManager.this.prefix + "plot_" + tier + "` SELECT ? AS `plot_plot_id`, ? AS `user_uuid`", 2);
} }
@Override @Override
@ -286,7 +286,7 @@ public class SQLManager implements AbstractDB {
stmt.setString(2, pair.uuid.toString()); stmt.setString(2, pair.uuid.toString());
} }
}; };
setBulk(myList, mod, whenDone); this.setBulk(myList, mod, whenDone);
} }
/** /**
@ -298,17 +298,17 @@ public class SQLManager implements AbstractDB {
final StmtMod<Plot> mod = new StmtMod<Plot>() { final StmtMod<Plot> mod = new StmtMod<Plot>() {
@Override @Override
public String getCreateMySQL(int size) { public String getCreateMySQL(int size) {
return getCreateMySQL(size, CREATE_PLOTS, 5); return this.getCreateMySQL(size, SQLManager.this.CREATE_PLOTS, 5);
} }
@Override @Override
public String getCreateSQLite(int size) { public String getCreateSQLite(int size) {
return getCreateSQLite(size, "INSERT INTO `" + prefix + "plot` SELECT ? AS `id`, ? AS `plot_id_x`, ? AS `plot_id_z`, ? AS `owner`, ? AS `world`, ? AS `timestamp` ", 6); return this.getCreateSQLite(size, "INSERT INTO `" + SQLManager.this.prefix + "plot` SELECT ? AS `id`, ? AS `plot_id_x`, ? AS `plot_id_z`, ? AS `owner`, ? AS `world`, ? AS `timestamp` ", 6);
} }
@Override @Override
public String getCreateSQL() { public String getCreateSQL() {
return CREATE_PLOT; return SQLManager.this.CREATE_PLOT;
} }
@Override @Override
@ -348,7 +348,7 @@ public class SQLManager implements AbstractDB {
} }
}; };
setBulk(myList, mod, whenDone); this.setBulk(myList, mod, whenDone);
} }
public <T> void setBulk(ArrayList<T> objList, StmtMod<T> mod, Runnable whenDone) { public <T> void setBulk(ArrayList<T> objList, StmtMod<T> mod, Runnable whenDone) {
@ -469,12 +469,12 @@ public class SQLManager implements AbstractDB {
final StmtMod<SettingsPair> mod = new StmtMod<SettingsPair>() { final StmtMod<SettingsPair> mod = new StmtMod<SettingsPair>() {
@Override @Override
public String getCreateMySQL(int size) { public String getCreateMySQL(int size) {
return getCreateMySQL(size, "INSERT INTO `" + prefix + "plot_settings`(`plot_plot_id`,`biome`,`rain`,`custom_time`,`time`,`deny_entry`,`alias`,`flags`,`merged`,`position`) VALUES ", 10); return this.getCreateMySQL(size, "INSERT INTO `" + SQLManager.this.prefix + "plot_settings`(`plot_plot_id`,`biome`,`rain`,`custom_time`,`time`,`deny_entry`,`alias`,`flags`,`merged`,`position`) VALUES ", 10);
} }
@Override @Override
public String getCreateSQLite(int size) { public String getCreateSQLite(int size) {
return getCreateSQLite(size, "INSERT INTO `" + prefix + "plot_settings` SELECT ? AS `plot_plot_id`, ? AS `biome`, ? AS `rain`, ? AS `custom_time`, ? AS `time`, ? AS `deny_entry`, ? AS `alias`, ? AS `flags`, ? AS `merged`, ? AS `position`", 10); return this.getCreateSQLite(size, "INSERT INTO `" + SQLManager.this.prefix + "plot_settings` SELECT ? AS `plot_plot_id`, ? AS `biome`, ? AS `rain`, ? AS `custom_time`, ? AS `time`, ? AS `deny_entry`, ? AS `alias`, ? AS `flags`, ? AS `merged`, ? AS `position`", 10);
} }
@Override @Override
@ -576,7 +576,7 @@ public class SQLManager implements AbstractDB {
TaskManager.runTaskAsync(new Runnable() { TaskManager.runTaskAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
setBulk(myList, mod, whenDone); SQLManager.this.setBulk(myList, mod, whenDone);
} }
}); });
} }
@ -585,12 +585,12 @@ public class SQLManager implements AbstractDB {
final StmtMod<Integer> mod = new StmtMod<Integer>() { final StmtMod<Integer> mod = new StmtMod<Integer>() {
@Override @Override
public String getCreateMySQL(int size) { public String getCreateMySQL(int size) {
return getCreateMySQL(size, CREATE_SETTINGS, 1); return this.getCreateMySQL(size, SQLManager.this.CREATE_SETTINGS, 1);
} }
@Override @Override
public String getCreateSQLite(int size) { public String getCreateSQLite(int size) {
return getCreateSQLite(size, "INSERT INTO `" + prefix + "plot_settings` SELECT ? AS `plot_plot_id`, ? AS `biome`, ? AS `rain`, ? AS `custom_time`, ? AS `time`, ? AS `deny_entry`, ? AS `alias`, ? AS `flags`, ? AS `merged`, ? AS `position` ", 10); return this.getCreateSQLite(size, "INSERT INTO `" + SQLManager.this.prefix + "plot_settings` SELECT ? AS `plot_plot_id`, ? AS `biome`, ? AS `rain`, ? AS `custom_time`, ? AS `time`, ? AS `deny_entry`, ? AS `alias`, ? AS `flags`, ? AS `merged`, ? AS `position` ", 10);
} }
@Override @Override
@ -625,7 +625,7 @@ public class SQLManager implements AbstractDB {
TaskManager.runTaskAsync(new Runnable() { TaskManager.runTaskAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
setBulk(myList, mod, whenDone); SQLManager.this.setBulk(myList, mod, whenDone);
} }
}); });
} }
@ -676,7 +676,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
PreparedStatement stmt = null; PreparedStatement stmt = null;
try { try {
stmt = SQLManager.this.connection.prepareStatement(SQLManager.this.CREATE_PLOT); stmt = SQLManager.this.connection.prepareStatement(SQLManager.this.CREATE_PLOT, Statement.RETURN_GENERATED_KEYS);
stmt.setInt(1, plot.id.x); stmt.setInt(1, plot.id.x);
stmt.setInt(2, plot.id.y); stmt.setInt(2, plot.id.y);
stmt.setString(3, plot.owner.toString()); stmt.setString(3, plot.owner.toString());
@ -690,10 +690,10 @@ public class SQLManager implements AbstractDB {
stmt.close(); stmt.close();
} }
else { else {
commit(); SQLManager.this.commit();
} }
stmt.close(); stmt.close();
id = getId(plot); id = SQLManager.this.getId(plot);
stmt = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "plot_settings`(`plot_plot_id`) VALUES(" + "?)"); stmt = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "plot_settings`(`plot_plot_id`) VALUES(" + "?)");
stmt.setInt(1, id); stmt.setInt(1, id);
stmt.executeUpdate(); stmt.executeUpdate();
@ -721,10 +721,10 @@ public class SQLManager implements AbstractDB {
tables = new String[]{"plot", "plot_denied", "plot_helpers", "plot_comments", "plot_trusted", "plot_rating", "plot_settings"}; tables = new String[]{"plot", "plot_denied", "plot_helpers", "plot_comments", "plot_trusted", "plot_rating", "plot_settings"};
} }
final boolean mysql = database.equals("mysql"); final boolean mysql = database.equals("mysql");
final DatabaseMetaData meta = connection.getMetaData(); final DatabaseMetaData meta = this.connection.getMetaData();
int create = 0; int create = 0;
for (final String s : tables) { for (final String s : tables) {
ResultSet set = meta.getTables(null, null, prefix + s, null); ResultSet set = meta.getTables(null, null, this.prefix + s, null);
if (!set.next()) { if (!set.next()) {
create++; create++;
} }
@ -782,7 +782,7 @@ public class SQLManager implements AbstractDB {
@Override @Override
public void run() { public void run() {
PreparedStatement stmt = null; PreparedStatement stmt = null;
final int id = getId(plot); final int id = SQLManager.this.getId(plot);
try { try {
stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "plot_settings` WHERE `plot_plot_id` = ?"); stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "plot_settings` WHERE `plot_plot_id` = ?");
stmt.setInt(1, id); stmt.setInt(1, id);
@ -847,8 +847,8 @@ public class SQLManager implements AbstractDB {
} }
PreparedStatement stmt = null; PreparedStatement stmt = null;
try { try {
commit(); this.commit();
commit(); this.commit();
if (plot.temp > 0) { if (plot.temp > 0) {
return plot.temp; return plot.temp;
} }
@ -909,7 +909,7 @@ public class SQLManager implements AbstractDB {
} }
} }
} }
try (Statement statement = connection.createStatement()) { try (Statement statement = this.connection.createStatement()) {
statement.executeUpdate("DELETE FROM `" + this.prefix + "plot_denied` WHERE `plot_plot_id` NOT IN (SELECT `id` FROM `" + this.prefix + "plot`)"); statement.executeUpdate("DELETE FROM `" + this.prefix + "plot_denied` WHERE `plot_plot_id` NOT IN (SELECT `id` FROM `" + this.prefix + "plot`)");
statement.close(); statement.close();
} }
@ -918,7 +918,7 @@ public class SQLManager implements AbstractDB {
} }
rs.close(); rs.close();
try (Statement statement = connection.createStatement()) { try (Statement statement = this.connection.createStatement()) {
for (String table : new String[]{"plot_denied", "plot_helpers", "plot_trusted"} ) { for (String table : new String[]{"plot_denied", "plot_helpers", "plot_trusted"} ) {
ResultSet result = statement.executeQuery("SELECT plot_plot_id, user_uuid, COUNT(*) FROM " + this.prefix + table + " GROUP BY plot_plot_id, user_uuid HAVING COUNT(*) > 1"); ResultSet result = statement.executeQuery("SELECT plot_plot_id, user_uuid, COUNT(*) FROM " + this.prefix + table + " GROUP BY plot_plot_id, user_uuid HAVING COUNT(*) > 1");
if (result.next()) { if (result.next()) {
@ -958,16 +958,18 @@ public class SQLManager implements AbstractDB {
} }
final HashMap<String, UUID> uuids = new HashMap<String, UUID>(); final HashMap<String, UUID> uuids = new HashMap<String, UUID>();
final HashMap<String, Integer> noExist = new HashMap<String, Integer>(); final HashMap<String, Integer> noExist = new HashMap<String, Integer>();
/*
* Getting plots
*/
stmt = this.connection.createStatement();
ResultSet r = stmt.executeQuery("SELECT `id`, `plot_id_x`, `plot_id_z`, `owner`, `world`, `timestamp` FROM `" + this.prefix + "plot`");
PlotId plot_id; PlotId plot_id;
int id; int id;
Plot p; Plot p;
String o; String o;
UUID user; UUID user;
/*
* Getting plots
*/
stmt = this.connection.createStatement();
try (ResultSet r = stmt.executeQuery("SELECT `id`, `plot_id_x`, `plot_id_z`, `owner`, `world`, `timestamp` FROM `" + this.prefix + "plot`")) {
while (r.next()) { while (r.next()) {
plot_id = new PlotId(r.getInt("plot_id_x"), r.getInt("plot_id_z")); plot_id = new PlotId(r.getInt("plot_id_x"), r.getInt("plot_id_z"));
id = r.getInt("id"); id = r.getInt("id");
@ -1000,8 +1002,9 @@ public class SQLManager implements AbstractDB {
p = new Plot(plot_id, user, new HashSet<UUID>(), new HashSet<UUID>(), new HashSet<UUID>(), "", null, null, worldname, new boolean[]{false, false, false, false}, time, id); p = new Plot(plot_id, user, new HashSet<UUID>(), new HashSet<UUID>(), new HashSet<UUID>(), "", null, null, worldname, new boolean[]{false, false, false, false}, time, id);
plots.put(id, p); plots.put(id, p);
} }
}
if (Settings.CACHE_RATINGS) { if (Settings.CACHE_RATINGS) {
r = stmt.executeQuery("SELECT `plot_plot_id`, `player`, `rating` FROM `" + this.prefix + "plot_rating`"); try (ResultSet r = stmt.executeQuery("SELECT `plot_plot_id`, `player`, `rating` FROM `" + this.prefix + "plot_rating`")) {
while (r.next()) { while (r.next()) {
id = r.getInt("plot_plot_id"); id = r.getInt("plot_plot_id");
o = r.getString("player"); o = r.getString("player");
@ -1021,11 +1024,12 @@ public class SQLManager implements AbstractDB {
} }
} }
} }
}
/* /*
* Getting helpers * Getting helpers
*/ */
r = stmt.executeQuery("SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_helpers`"); try (ResultSet r = stmt.executeQuery("SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_helpers`")) {
while (r.next()) { while (r.next()) {
id = r.getInt("plot_plot_id"); id = r.getInt("plot_plot_id");
o = r.getString("user_uuid"); o = r.getString("user_uuid");
@ -1041,11 +1045,12 @@ public class SQLManager implements AbstractDB {
PS.debug("&cPLOT " + id + " in plot_helpers does not exist. Please create the plot or remove this entry."); PS.debug("&cPLOT " + id + " in plot_helpers does not exist. Please create the plot or remove this entry.");
} }
} }
}
/* /*
* Getting trusted * Getting trusted
*/ */
r = stmt.executeQuery("SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_trusted`"); try (ResultSet r = stmt.executeQuery("SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_trusted`")) {
while (r.next()) { while (r.next()) {
id = r.getInt("plot_plot_id"); id = r.getInt("plot_plot_id");
o = r.getString("user_uuid"); o = r.getString("user_uuid");
@ -1061,11 +1066,12 @@ public class SQLManager implements AbstractDB {
PS.debug("&cPLOT " + id + " in plot_trusted does not exist. Please create the plot or remove this entry."); PS.debug("&cPLOT " + id + " in plot_trusted does not exist. Please create the plot or remove this entry.");
} }
} }
}
/* /*
* Getting denied * Getting denied
*/ */
r = stmt.executeQuery("SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_denied`"); try (ResultSet r = stmt.executeQuery("SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_denied`")) {
while (r.next()) { while (r.next()) {
id = r.getInt("plot_plot_id"); id = r.getInt("plot_plot_id");
o = r.getString("user_uuid"); o = r.getString("user_uuid");
@ -1081,8 +1087,9 @@ public class SQLManager implements AbstractDB {
PS.debug("&cPLOT " + id + " in plot_denied does not exist. Please create the plot or remove this entry."); PS.debug("&cPLOT " + id + " in plot_denied does not exist. Please create the plot or remove this entry.");
} }
} }
}
r = stmt.executeQuery("SELECT * FROM `" + this.prefix + "plot_settings`"); try (ResultSet r = stmt.executeQuery("SELECT * FROM `" + this.prefix + "plot_settings`")) {
while (r.next()) { while (r.next()) {
id = r.getInt("plot_plot_id"); id = r.getInt("plot_plot_id");
final Plot plot = plots.get(id); final Plot plot = plots.get(id);
@ -1156,18 +1163,17 @@ public class SQLManager implements AbstractDB {
if (exception) { if (exception) {
PS.debug("&cPlot " + id + " had an invalid flag. A fix has been attempted."); PS.debug("&cPlot " + id + " had an invalid flag. A fix has been attempted.");
PS.debug("&c" + myflags); PS.debug("&c" + myflags);
setFlags(id, flags.values()); this.setFlags(id, flags.values());
} }
plot.getSettings().flags = flags; plot.getSettings().flags = flags;
} else { } else {
PS.debug("&cPLOT " + id + " in plot_settings does not exist. Please create the plot or remove this entry."); PS.debug("&cPLOT " + id + " in plot_settings does not exist. Please create the plot or remove this entry.");
} }
} }
stmt.close(); stmt.close();
r.close(); }
if (plots.keySet().size() > 0) { if (plots.keySet().size() > 0) {
createEmptySettings(new ArrayList<Integer>(plots.keySet()), null); this.createEmptySettings(new ArrayList<Integer>(plots.keySet()), null);
} }
boolean invalidPlot = false; boolean invalidPlot = false;
for (final String worldname : noExist.keySet()) { for (final String worldname : noExist.keySet()) {
@ -1197,7 +1203,7 @@ public class SQLManager implements AbstractDB {
} }
final PreparedStatement stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot_settings` SET `merged` = ? WHERE `plot_plot_id` = ?"); final PreparedStatement stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot_settings` SET `merged` = ? WHERE `plot_plot_id` = ?");
stmt.setInt(1, n); stmt.setInt(1, n);
stmt.setInt(2, getId(plot)); stmt.setInt(2, SQLManager.this.getId(plot));
stmt.execute(); stmt.execute();
stmt.close(); stmt.close();
} catch (final SQLException e) { } catch (final SQLException e) {
@ -1220,8 +1226,8 @@ public class SQLManager implements AbstractDB {
*/ */
try { try {
final String world = p1.world; final String world = p1.world;
final int id1 = getId(p1); final int id1 = SQLManager.this.getId(p1);
final int id2 = getId(p2); final int id2 = SQLManager.this.getId(p2);
final PlotId pos1 = p1.getId(); final PlotId pos1 = p1.getId();
final PlotId pos2 = p2.getId(); final PlotId pos2 = p2.getId();
PreparedStatement stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot` SET `plot_id_x` = ?, `plot_id_z` = ? WHERE `id` = ?"); PreparedStatement stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot` SET `plot_id_x` = ?, `plot_id_z` = ? WHERE `id` = ?");
@ -1249,7 +1255,7 @@ public class SQLManager implements AbstractDB {
@Override @Override
public void run() { public void run() {
try { try {
final int id = getId(original); final int id = SQLManager.this.getId(original);
final PreparedStatement stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot` SET `plot_id_x` = ?, `plot_id_z` = ? WHERE `id` = ?"); final PreparedStatement stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot` SET `plot_id_x` = ?, `plot_id_z` = ? WHERE `id` = ?");
stmt.setInt(1, newPlot.id.x); stmt.setInt(1, newPlot.id.x);
stmt.setInt(2, newPlot.id.y); stmt.setInt(2, newPlot.id.y);
@ -1280,7 +1286,7 @@ public class SQLManager implements AbstractDB {
try { try {
final PreparedStatement stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot_settings` SET `flags` = ? WHERE `plot_plot_id` = ?"); final PreparedStatement stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot_settings` SET `flags` = ? WHERE `plot_plot_id` = ?");
stmt.setString(1, flag_string.toString()); stmt.setString(1, flag_string.toString());
stmt.setInt(2, getId(plot)); stmt.setInt(2, SQLManager.this.getId(plot));
stmt.execute(); stmt.execute();
stmt.close(); stmt.close();
} catch (final SQLException e) { } catch (final SQLException e) {
@ -1319,7 +1325,7 @@ public class SQLManager implements AbstractDB {
try { try {
stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot_settings` SET `alias` = ? WHERE `plot_plot_id` = ?"); stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot_settings` SET `alias` = ? WHERE `plot_plot_id` = ?");
stmt.setString(1, alias); stmt.setString(1, alias);
stmt.setInt(2, getId(plot)); stmt.setInt(2, SQLManager.this.getId(plot));
stmt.executeUpdate(); stmt.executeUpdate();
stmt.close(); stmt.close();
} catch (final SQLException e) { } catch (final SQLException e) {
@ -1388,7 +1394,7 @@ public class SQLManager implements AbstractDB {
ids.add(r.getInt("id")); ids.add(r.getInt("id"));
} }
} }
purgeIds(world, ids); this.purgeIds(world, ids);
stmt.close(); stmt.close();
r.close(); r.close();
for (Iterator<PlotId> iter = plots.iterator(); iter.hasNext(); ) { for (Iterator<PlotId> iter = plots.iterator(); iter.hasNext(); ) {
@ -1412,7 +1418,7 @@ public class SQLManager implements AbstractDB {
try { try {
stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot_settings` SET `position` = ? WHERE `plot_plot_id` = ?"); stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "plot_settings` SET `position` = ? WHERE `plot_plot_id` = ?");
stmt.setString(1, position); stmt.setString(1, position);
stmt.setInt(2, getId(plot)); stmt.setInt(2, SQLManager.this.getId(plot));
stmt.executeUpdate(); stmt.executeUpdate();
stmt.close(); stmt.close();
} catch (final SQLException e) { } catch (final SQLException e) {
@ -1536,12 +1542,12 @@ public class SQLManager implements AbstractDB {
try { try {
final PreparedStatement statement; final PreparedStatement statement;
if (plot != null) { if (plot != null) {
statement = connection.prepareStatement("SELECT * FROM `" + prefix + "plot_comments` WHERE `world` = ? AND `hashcode` = ? AND `inbox` = ?"); statement = SQLManager.this.connection.prepareStatement("SELECT * FROM `" + SQLManager.this.prefix + "plot_comments` WHERE `world` = ? AND `hashcode` = ? AND `inbox` = ?");
statement.setString(1, plot.world); statement.setString(1, plot.world);
statement.setInt(2, plot.id.hashCode()); statement.setInt(2, plot.id.hashCode());
statement.setString(3, inbox); statement.setString(3, inbox);
} else { } else {
statement = connection.prepareStatement("SELECT * FROM `" + prefix + "plot_comments` WHERE `inbox` = ?"); statement = SQLManager.this.connection.prepareStatement("SELECT * FROM `" + SQLManager.this.prefix + "plot_comments` WHERE `inbox` = ?");
statement.setString(1, inbox); statement.setString(1, inbox);
} }
final ResultSet set = statement.executeQuery(); final ResultSet set = statement.executeQuery();
@ -1603,7 +1609,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "plot_helpers` WHERE `plot_plot_id` = ? AND `user_uuid` = ?"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "plot_helpers` WHERE `plot_plot_id` = ? AND `user_uuid` = ?");
statement.setInt(1, getId(plot)); statement.setInt(1, SQLManager.this.getId(plot));
statement.setString(2, uuid.toString()); statement.setString(2, uuid.toString());
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
@ -1622,7 +1628,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "plot_trusted` WHERE `plot_plot_id` = ? AND `user_uuid` = ?"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "plot_trusted` WHERE `plot_plot_id` = ? AND `user_uuid` = ?");
statement.setInt(1, getId(plot)); statement.setInt(1, SQLManager.this.getId(plot));
statement.setString(2, uuid.toString()); statement.setString(2, uuid.toString());
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
@ -1641,7 +1647,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "plot_helpers` (`plot_plot_id`, `user_uuid`) VALUES(?,?)"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "plot_helpers` (`plot_plot_id`, `user_uuid`) VALUES(?,?)");
statement.setInt(1, getId(plot)); statement.setInt(1, SQLManager.this.getId(plot));
statement.setString(2, uuid.toString()); statement.setString(2, uuid.toString());
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
@ -1678,7 +1684,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "plot_trusted` (`plot_plot_id`, `user_uuid`) VALUES(?,?)"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "plot_trusted` (`plot_plot_id`, `user_uuid`) VALUES(?,?)");
statement.setInt(1, getId(plot)); statement.setInt(1, SQLManager.this.getId(plot));
statement.setString(2, uuid.toString()); statement.setString(2, uuid.toString());
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
@ -1697,7 +1703,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "plot_denied` WHERE `plot_plot_id` = ? AND `user_uuid` = ?"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "plot_denied` WHERE `plot_plot_id` = ? AND `user_uuid` = ?");
statement.setInt(1, getId(plot)); statement.setInt(1, SQLManager.this.getId(plot));
statement.setString(2, uuid.toString()); statement.setString(2, uuid.toString());
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
@ -1716,7 +1722,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "plot_denied` (`plot_plot_id`, `user_uuid`) VALUES(?,?)"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "plot_denied` (`plot_plot_id`, `user_uuid`) VALUES(?,?)");
statement.setInt(1, getId(plot)); statement.setInt(1, SQLManager.this.getId(plot));
statement.setString(2, uuid.toString()); statement.setString(2, uuid.toString());
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
@ -1733,7 +1739,7 @@ public class SQLManager implements AbstractDB {
HashMap<UUID, Integer> map = new HashMap<UUID, Integer>(); HashMap<UUID, Integer> map = new HashMap<UUID, Integer>();
try { try {
final PreparedStatement statement = this.connection.prepareStatement("SELECT `rating`, `player` FROM `" + this.prefix + "plot_rating` WHERE `plot_plot_id` = ? "); final PreparedStatement statement = this.connection.prepareStatement("SELECT `rating`, `player` FROM `" + this.prefix + "plot_rating` WHERE `plot_plot_id` = ? ");
statement.setInt(1, getId(plot)); statement.setInt(1, this.getId(plot));
final ResultSet set = statement.executeQuery(); final ResultSet set = statement.executeQuery();
while (set.next()) { while (set.next()) {
UUID uuid = UUID.fromString(set.getString("player")); UUID uuid = UUID.fromString(set.getString("player"));
@ -1756,7 +1762,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "plot_rating` (`plot_plot_id`, `rating`, `player`) VALUES(?,?,?)"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "plot_rating` (`plot_plot_id`, `rating`, `player`) VALUES(?,?,?)");
statement.setInt(1, getId(plot)); statement.setInt(1, SQLManager.this.getId(plot));
statement.setInt(2, value); statement.setInt(2, value);
statement.setString(3, rater.toString()); statement.setString(3, rater.toString());
statement.executeUpdate(); statement.executeUpdate();
@ -1776,7 +1782,7 @@ public class SQLManager implements AbstractDB {
@Override @Override
public void run() { public void run() {
PreparedStatement stmt = null; PreparedStatement stmt = null;
final int id = getClusterId(cluster.world, ClusterManager.getClusterId(cluster)); final int id = SQLManager.this.getClusterId(cluster.world, ClusterManager.getClusterId(cluster));
try { try {
stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "cluster_settings` WHERE `cluster_id` = ?"); stmt = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "cluster_settings` WHERE `cluster_id` = ?");
stmt.setInt(1, id); stmt.setInt(1, id);
@ -2020,7 +2026,7 @@ public class SQLManager implements AbstractDB {
try { try {
final PreparedStatement stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "cluster_settings` SET `flags` = ? WHERE `cluster_id` = ?"); final PreparedStatement stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "cluster_settings` SET `flags` = ? WHERE `cluster_id` = ?");
stmt.setString(1, flag_string.toString()); stmt.setString(1, flag_string.toString());
stmt.setInt(2, getClusterId(cluster.world, ClusterManager.getClusterId(cluster))); stmt.setInt(2, SQLManager.this.getClusterId(cluster.world, ClusterManager.getClusterId(cluster)));
stmt.execute(); stmt.execute();
stmt.close(); stmt.close();
} catch (final SQLException e) { } catch (final SQLException e) {
@ -2041,7 +2047,7 @@ public class SQLManager implements AbstractDB {
try { try {
stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "cluster_settings` SET `alias` = ? WHERE `cluster_id` = ?"); stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "cluster_settings` SET `alias` = ? WHERE `cluster_id` = ?");
stmt.setString(1, name); stmt.setString(1, name);
stmt.setInt(2, getClusterId(cluster.world, ClusterManager.getClusterId(cluster))); stmt.setInt(2, SQLManager.this.getClusterId(cluster.world, ClusterManager.getClusterId(cluster)));
stmt.executeUpdate(); stmt.executeUpdate();
stmt.close(); stmt.close();
} catch (final SQLException e) { } catch (final SQLException e) {
@ -2059,7 +2065,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "cluster_helpers` WHERE `cluster_id` = ? AND `user_uuid` = ?"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "cluster_helpers` WHERE `cluster_id` = ? AND `user_uuid` = ?");
statement.setInt(1, getClusterId(cluster.world, ClusterManager.getClusterId(cluster))); statement.setInt(1, SQLManager.this.getClusterId(cluster.world, ClusterManager.getClusterId(cluster)));
statement.setString(2, uuid.toString()); statement.setString(2, uuid.toString());
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
@ -2078,7 +2084,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "cluster_helpers` (`cluster_id`, `user_uuid`) VALUES(?,?)"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "cluster_helpers` (`cluster_id`, `user_uuid`) VALUES(?,?)");
statement.setInt(1, getClusterId(cluster.world, ClusterManager.getClusterId(cluster))); statement.setInt(1, SQLManager.this.getClusterId(cluster.world, ClusterManager.getClusterId(cluster)));
statement.setString(2, uuid.toString()); statement.setString(2, uuid.toString());
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
@ -2106,7 +2112,7 @@ public class SQLManager implements AbstractDB {
stmt.setString(6, cluster.world); stmt.setString(6, cluster.world);
stmt.executeUpdate(); stmt.executeUpdate();
stmt.close(); stmt.close();
final int id = getClusterId(cluster.world, ClusterManager.getClusterId(cluster)); final int id = SQLManager.this.getClusterId(cluster.world, ClusterManager.getClusterId(cluster));
stmt = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "cluster_settings`(`cluster_id`, `alias`) VALUES(?, ?" + ")"); stmt = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "cluster_settings`(`cluster_id`, `alias`) VALUES(?, ?" + ")");
stmt.setInt(1, id); stmt.setInt(1, id);
stmt.setString(2, cluster.settings.getAlias()); stmt.setString(2, cluster.settings.getAlias());
@ -2136,7 +2142,7 @@ public class SQLManager implements AbstractDB {
stmt.setInt(2, pos1.y); stmt.setInt(2, pos1.y);
stmt.setInt(3, pos2.x); stmt.setInt(3, pos2.x);
stmt.setInt(4, pos2.y); stmt.setInt(4, pos2.y);
stmt.setInt(5, getClusterId(current.world, ClusterManager.getClusterId(current))); stmt.setInt(5, SQLManager.this.getClusterId(current.world, ClusterManager.getClusterId(current)));
stmt.executeUpdate(); stmt.executeUpdate();
stmt.close(); stmt.close();
} catch (final SQLException e) { } catch (final SQLException e) {
@ -2156,7 +2162,7 @@ public class SQLManager implements AbstractDB {
try { try {
stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "cluster_settings` SET `position` = ? WHERE `cluster_id` = ?"); stmt = SQLManager.this.connection.prepareStatement("UPDATE `" + SQLManager.this.prefix + "cluster_settings` SET `position` = ? WHERE `cluster_id` = ?");
stmt.setString(1, position); stmt.setString(1, position);
stmt.setInt(2, getClusterId(cluster.world, ClusterManager.getClusterId(cluster))); stmt.setInt(2, SQLManager.this.getClusterId(cluster.world, ClusterManager.getClusterId(cluster)));
stmt.executeUpdate(); stmt.executeUpdate();
stmt.close(); stmt.close();
} catch (final SQLException e) { } catch (final SQLException e) {
@ -2222,7 +2228,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "cluster_invited` WHERE `cluster_id` = ? AND `user_uuid` = ?"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("DELETE FROM `" + SQLManager.this.prefix + "cluster_invited` WHERE `cluster_id` = ? AND `user_uuid` = ?");
statement.setInt(1, getClusterId(cluster.world, ClusterManager.getClusterId(cluster))); statement.setInt(1, SQLManager.this.getClusterId(cluster.world, ClusterManager.getClusterId(cluster)));
statement.setString(2, uuid.toString()); statement.setString(2, uuid.toString());
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
@ -2241,7 +2247,7 @@ public class SQLManager implements AbstractDB {
public void run() { public void run() {
try { try {
final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "cluster_invited` (`cluster_id`, `user_uuid`) VALUES(?,?)"); final PreparedStatement statement = SQLManager.this.connection.prepareStatement("INSERT INTO `" + SQLManager.this.prefix + "cluster_invited` (`cluster_id`, `user_uuid`) VALUES(?,?)");
statement.setInt(1, getClusterId(cluster.world, ClusterManager.getClusterId(cluster))); statement.setInt(1, SQLManager.this.getClusterId(cluster.world, ClusterManager.getClusterId(cluster)));
statement.setString(2, uuid.toString()); statement.setString(2, uuid.toString());
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
@ -2259,20 +2265,20 @@ public class SQLManager implements AbstractDB {
SQLManager.this.connection.close(); SQLManager.this.connection.close();
SQLManager.this.connection = PS.get().getDatabase().forceConnection(); SQLManager.this.connection = PS.get().getDatabase().forceConnection();
final Statement stmt = this.connection.createStatement(); final Statement stmt = this.connection.createStatement();
stmt.addBatch("DROP TABLE `" + prefix + "cluster_invited`"); stmt.addBatch("DROP TABLE `" + this.prefix + "cluster_invited`");
stmt.addBatch("DROP TABLE `" + prefix + "cluster_helpers`"); stmt.addBatch("DROP TABLE `" + this.prefix + "cluster_helpers`");
stmt.addBatch("DROP TABLE `" + prefix + "cluster`"); stmt.addBatch("DROP TABLE `" + this.prefix + "cluster`");
stmt.addBatch("DROP TABLE `" + prefix + "plot_rating`"); stmt.addBatch("DROP TABLE `" + this.prefix + "plot_rating`");
stmt.addBatch("DROP TABLE `" + prefix + "plot_settings`"); stmt.addBatch("DROP TABLE `" + this.prefix + "plot_settings`");
stmt.addBatch("DROP TABLE `" + prefix + "plot_comments`"); stmt.addBatch("DROP TABLE `" + this.prefix + "plot_comments`");
stmt.addBatch("DROP TABLE `" + prefix + "plot_trusted`"); stmt.addBatch("DROP TABLE `" + this.prefix + "plot_trusted`");
stmt.addBatch("DROP TABLE `" + prefix + "plot_helpers`"); stmt.addBatch("DROP TABLE `" + this.prefix + "plot_helpers`");
stmt.addBatch("DROP TABLE `" + prefix + "plot_denied`"); stmt.addBatch("DROP TABLE `" + this.prefix + "plot_denied`");
stmt.executeBatch(); stmt.executeBatch();
stmt.clearBatch(); stmt.clearBatch();
stmt.close(); stmt.close();
PreparedStatement statement = connection.prepareStatement("DROP TABLE `" + prefix + "plot`"); PreparedStatement statement = this.connection.prepareStatement("DROP TABLE `" + this.prefix + "plot`");
statement.executeUpdate(); statement.executeUpdate();
statement.close(); statement.close();
return true; return true;
@ -2305,12 +2311,9 @@ public class SQLManager implements AbstractDB {
@Override @Override
public void validateAllPlots(Set<Plot> toValidate) { public void validateAllPlots(Set<Plot> toValidate) {
PS.debug("$1All DB transactions during this session are being validated (This may take a while if corrections need to be made)"); PS.debug("$1All DB transactions during this session are being validated (This may take a while if corrections need to be made)");
try { this.commit();
connection.commit(); ConcurrentHashMap<String, ConcurrentHashMap<PlotId, Plot>> database = this.getPlots();
} this.commit();
catch (SQLException e) {}
ConcurrentHashMap<String, ConcurrentHashMap<PlotId, Plot>> database = getPlots();
ArrayList<Plot> toCreate = new ArrayList<>(); ArrayList<Plot> toCreate = new ArrayList<>();
for (Plot plot : PS.get().getPlotsRaw()) { for (Plot plot : PS.get().getPlotsRaw()) {
@ -2332,7 +2335,7 @@ public class SQLManager implements AbstractDB {
// owner // owner
if (!plot.owner.equals(dataplot.owner)) { if (!plot.owner.equals(dataplot.owner)) {
PS.debug("&8 - &7Setting owner: " + plot +" -> " + MainUtil.getName(plot.owner)); PS.debug("&8 - &7Setting owner: " + plot +" -> " + MainUtil.getName(plot.owner));
setOwner(plot, plot.owner); this.setOwner(plot, plot.owner);
} }
// trusted // trusted
if (!plot.getTrusted().equals(dataplot.trusted)) { if (!plot.getTrusted().equals(dataplot.trusted)) {
@ -2343,12 +2346,12 @@ public class SQLManager implements AbstractDB {
PS.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " trusted for: " + plot); PS.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " trusted for: " + plot);
if (toRemove.size() > 0) { if (toRemove.size() > 0) {
for (UUID uuid : toRemove) { for (UUID uuid : toRemove) {
removeTrusted(plot, uuid); this.removeTrusted(plot, uuid);
} }
} }
if (toAdd.size() > 0) { if (toAdd.size() > 0) {
for (UUID uuid : toAdd) { for (UUID uuid : toAdd) {
setTrusted(plot, uuid); this.setTrusted(plot, uuid);
} }
} }
} }
@ -2360,12 +2363,12 @@ public class SQLManager implements AbstractDB {
PS.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " members for: " + plot); PS.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " members for: " + plot);
if (toRemove.size() > 0) { if (toRemove.size() > 0) {
for (UUID uuid : toRemove) { for (UUID uuid : toRemove) {
removeMember(plot, uuid); this.removeMember(plot, uuid);
} }
} }
if (toAdd.size() > 0) { if (toAdd.size() > 0) {
for (UUID uuid : toAdd) { for (UUID uuid : toAdd) {
setMember(plot, uuid); this.setMember(plot, uuid);
} }
} }
} }
@ -2377,12 +2380,12 @@ public class SQLManager implements AbstractDB {
PS.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " denied for: " + plot); PS.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " denied for: " + plot);
if (toRemove.size() > 0) { if (toRemove.size() > 0) {
for (UUID uuid : toRemove) { for (UUID uuid : toRemove) {
removeDenied(plot, uuid); this.removeDenied(plot, uuid);
} }
} }
if (toAdd.size() > 0) { if (toAdd.size() > 0) {
for (UUID uuid : toAdd) { for (UUID uuid : toAdd) {
setDenied(plot, uuid); this.setDenied(plot, uuid);
} }
} }
} }
@ -2392,14 +2395,14 @@ public class SQLManager implements AbstractDB {
boolean[] dm = ds.getMerged(); boolean[] dm = ds.getMerged();
if (pm[0] != dm[0] || pm[1] != dm[1] || pm[1] != dm[1] || pm[1] != dm[1]) { if (pm[0] != dm[0] || pm[1] != dm[1] || pm[1] != dm[1] || pm[1] != dm[1]) {
PS.debug("&8 - &7Correcting merge for: " + plot); PS.debug("&8 - &7Correcting merge for: " + plot);
setMerged(dataplot, ps.getMerged()); this.setMerged(dataplot, ps.getMerged());
} }
HashMap<String, Flag> pf = ps.flags; HashMap<String, Flag> pf = ps.flags;
HashMap<String, Flag> df = ds.flags; HashMap<String, Flag> df = ds.flags;
if (pf.size() != 0 && df.size() != 0) { if (pf.size() != 0 && df.size() != 0) {
if (pf.size() != df.size() || !StringMan.isEqual(StringMan.joinOrdered(pf.values(), ","),StringMan.joinOrdered(df.values(), ","))) { if (pf.size() != df.size() || !StringMan.isEqual(StringMan.joinOrdered(pf.values(), ","),StringMan.joinOrdered(df.values(), ","))) {
PS.debug("&8 - &7Correcting flags for: " + plot); PS.debug("&8 - &7Correcting flags for: " + plot);
setFlags(plot, pf.values()); this.setFlags(plot, pf.values());
} }
} }
// TODO comments // TODO comments
@ -2407,7 +2410,11 @@ public class SQLManager implements AbstractDB {
// TODO alias // TODO alias
// TODO unconnected entries from helpers, trusted, denied, comments, settings, rating // TODO unconnected entries from helpers, trusted, denied, comments, settings, rating
} }
this.commit();
if (toCreate.size() > 0) {
this.createPlots(toCreate, null);
}
this.commit();
for (Entry<String, ConcurrentHashMap<PlotId, Plot>> entry : database.entrySet()) { for (Entry<String, ConcurrentHashMap<PlotId, Plot>> entry : database.entrySet()) {
ConcurrentHashMap<PlotId, Plot> map = entry.getValue(); ConcurrentHashMap<PlotId, Plot> map = entry.getValue();
if (map.size() > 0) { if (map.size() > 0) {
@ -2419,7 +2426,7 @@ public class SQLManager implements AbstractDB {
PS.debug("$4Done!"); PS.debug("$4Done!");
try { try {
connection.commit(); this.connection.commit();
} }
catch (SQLException e) {} catch (SQLException e) {}
} }