Add players: Try a less odd query if the first one failed

This commit is contained in:
Brokkonaut
2018-09-15 04:05:17 +02:00
parent a55cbabbdd
commit eb99b6d278

View File

@ -620,19 +620,27 @@ public class Consumer extends Thread {
String name = actor.getName();
String uuid = actor.getUUID();
Statement state = conn.createStatement();
String q1 = "INSERT IGNORE INTO `lb-players` (playername,UUID) SELECT '" + mysqlTextEscape(name) + "','" + mysqlTextEscape(uuid) + "' FROM `lb-players` WHERE NOT EXISTS (SELECT NULL FROM `lb-players` WHERE UUID = '" + mysqlTextEscape(uuid) + "') LIMIT 1;";
String q1 = "INSERT IGNORE INTO `lb-players` (playername,UUID) SELECT '" + mysqlTextEscape(name) + "','" + mysqlTextEscape(uuid) + "' FROM `lb-players` WHERE NOT EXISTS (SELECT NULL FROM `lb-players` WHERE UUID = '" + mysqlTextEscape(uuid) + "') LIMIT 1";
String q2 = "SELECT playerid FROM `lb-players` WHERE UUID = '" + mysqlTextEscape(uuid) + "'";
int q1Result = state.executeUpdate(q1);
final ResultSet rs = state.executeQuery(q2);
ResultSet rs = state.executeQuery(q2);
if (rs.next()) {
uncommitedPlayerIds.put(actor, rs.getInt(1));
} else {
logblock.getLogger().warning("[Consumer] Failed to add player " + actor.getName());
logblock.getLogger().warning("[Consumer-Debug] Query 1: " + q1);
logblock.getLogger().warning("[Consumer-Debug] Query 1 - Result: " + q1Result);
logblock.getLogger().warning("[Consumer-Debug] Query 2: " + q2);
}
rs.close();
if (!uncommitedPlayerIds.containsKey(actor)) {
state.executeUpdate("INSERT IGNORE INTO `lb-players` (playername,UUID) VALUES ('" + mysqlTextEscape(name) + "','" + mysqlTextEscape(uuid) + "')");
rs = state.executeQuery(q2);
if (rs.next()) {
uncommitedPlayerIds.put(actor, rs.getInt(1));
} else {
logblock.getLogger().warning("[Consumer] Failed to add player " + actor.getName());
logblock.getLogger().warning("[Consumer-Debug] Query 1: " + q1);
logblock.getLogger().warning("[Consumer-Debug] Query 1 - Result: " + q1Result);
logblock.getLogger().warning("[Consumer-Debug] Query 2: " + q2);
}
rs.close();
}
state.close();
return uncommitedPlayerIds.containsKey(actor);
}