diff --git a/src/main/java/de/diddiz/LogBlock/Consumer.java b/src/main/java/de/diddiz/LogBlock/Consumer.java index 41f513a..2ff34af 100644 --- a/src/main/java/de/diddiz/LogBlock/Consumer.java +++ b/src/main/java/de/diddiz/LogBlock/Consumer.java @@ -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); }