From 227747a377e9a096f6bdc1f3441380454b7b8772 Mon Sep 17 00:00:00 2001 From: Robin Kupper Date: Fri, 6 May 2011 16:33:03 +0200 Subject: [PATCH] Fixed multiple players not working --- src/de/diddiz/LogBlock/CommandsHandler.java | 1 + src/de/diddiz/LogBlock/QueryParams.java | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/de/diddiz/LogBlock/CommandsHandler.java b/src/de/diddiz/LogBlock/CommandsHandler.java index aafe6b6..bc7172e 100644 --- a/src/de/diddiz/LogBlock/CommandsHandler.java +++ b/src/de/diddiz/LogBlock/CommandsHandler.java @@ -200,6 +200,7 @@ public class CommandsHandler implements CommandExecutor conn = logblock.getConnection(); conn.setAutoCommit(false); state = conn.createStatement(); + log.info("Query: " + params.getQuery()); rs = state.executeQuery(params.getQuery()); } catch (SQLException ex) { close(); diff --git a/src/de/diddiz/LogBlock/QueryParams.java b/src/de/diddiz/LogBlock/QueryParams.java index 51cfbf4..9245026 100644 --- a/src/de/diddiz/LogBlock/QueryParams.java +++ b/src/de/diddiz/LogBlock/QueryParams.java @@ -271,7 +271,7 @@ public class QueryParams for (final int type: types) { where.append("type = " + type + " OR replaced = " + type + " OR "); } - where.delete(where.length() - 5, where.length() - 1); + where.delete(where.length() - 4, where.length() - 1); where.append(") AND "); } break; @@ -282,7 +282,7 @@ public class QueryParams for (final int type: types) { where.append("type = " + type + " OR replaced = " + type + " OR "); } - where.delete(where.length() - 5, where.length() - 1); + where.delete(where.length() - 4, where.length()); where.append(") AND "); } break; @@ -293,7 +293,7 @@ public class QueryParams for (final int type: types) { where.append("type = " + type + " OR "); } - where.delete(where.length() - 5, where.length() - 1); + where.delete(where.length() - 4, where.length()); where.append(") AND "); } else where.append("type > 0 AND "); @@ -305,7 +305,7 @@ public class QueryParams for (final int type: types) { where.append("replaced = " + type + " OR "); } - where.delete(where.length() - 5, where.length() - 1); + where.delete(where.length() - 4, where.length()); where.append(") AND "); } else where.append("replaced > 0 AND "); @@ -315,9 +315,12 @@ public class QueryParams break; } if (!players.isEmpty() && sum != SummarizationMode.PLAYERS) { + where.append('('); for (final String playerName: players) { - where.append("playername = '" + playerName + "' AND "); + where.append("playername = '" + playerName + "' OR "); } + where.delete(where.length() - 4, where.length()); + where.append(") AND "); } if (loc != null && radius >= 0) where.append("x > '" + (loc.getBlockX() - radius) + "' AND x < '" + (loc.getBlockX() + radius) + "' AND z > '" + (loc.getBlockZ() - radius) + "' AND z < '" + (loc.getBlockZ() + radius) + "' AND "); @@ -325,7 +328,7 @@ public class QueryParams where.append("x >= '"+ sel.getMinimumPoint().getBlockX() + "' AND x <= '" + sel.getMaximumPoint().getBlockX() + "' AND y >= '" + sel.getMinimumPoint().getBlockY() + "' AND y <= '" + sel.getMaximumPoint().getBlockY() + "' AND z >= '" + sel.getMinimumPoint().getBlockZ() + "' AND z <= '" + sel.getMaximumPoint().getBlockZ() + "' AND "); if (minutes >= 0) where.append("date > date_sub(now(), INTERVAL " + minutes + " MINUTE) AND "); - where.delete(where.length() - 5, where.length() - 1); + where.delete(where.length() - 4, where.length()); if (sum == SummarizationMode.NONE) { final StringBuffer sql = new StringBuffer("SELECT date, replaced, type, playername FROM `" + getTable() + "` INNER JOIN `lb-players` USING (playerid) "); if (bct == BlockChangeType.ALL)