From 47f7ddec01844381e86d0d1441d6e251ff1d496c Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Fri, 3 Aug 2018 14:57:08 +0200 Subject: [PATCH] Limit query results lookup.limesLimit is now correctly used as default limit for lookups The new lookup.hardLimesLimit is the max limit that is enforced in all lookups + rollbacks (default 100000) Fixes #636, Fixes #128 --- src/main/java/de/diddiz/LogBlock/CommandsHandler.java | 1 + src/main/java/de/diddiz/LogBlock/QueryParams.java | 5 ++++- src/main/java/de/diddiz/LogBlock/config/Config.java | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/diddiz/LogBlock/CommandsHandler.java b/src/main/java/de/diddiz/LogBlock/CommandsHandler.java index 13deb36..388bbe7 100755 --- a/src/main/java/de/diddiz/LogBlock/CommandsHandler.java +++ b/src/main/java/de/diddiz/LogBlock/CommandsHandler.java @@ -340,6 +340,7 @@ public class CommandsHandler implements CommandExecutor { final QueryParams params = new QueryParams(logblock); params.since = defaultTime; params.bct = BlockChangeType.ALL; + params.limit = Config.linesLimit; params.parseArgs(sender, argsList); new CommandLookup(sender, params, true); } else { diff --git a/src/main/java/de/diddiz/LogBlock/QueryParams.java b/src/main/java/de/diddiz/LogBlock/QueryParams.java index 3a12765..fcb8419 100644 --- a/src/main/java/de/diddiz/LogBlock/QueryParams.java +++ b/src/main/java/de/diddiz/LogBlock/QueryParams.java @@ -87,7 +87,10 @@ public final class QueryParams implements Cloneable { } public String getLimit() { - return limit > 0 ? "LIMIT " + limit : ""; + if (Config.hardLinesLimit <= 0 || (limit > 0 && limit <= Config.hardLinesLimit)) { + return limit > 0 ? "LIMIT " + limit : ""; + } + return "LIMIT " + Config.hardLinesLimit; } public String getQuery() { diff --git a/src/main/java/de/diddiz/LogBlock/config/Config.java b/src/main/java/de/diddiz/LogBlock/config/Config.java index 0a996cc..fec0a7d 100644 --- a/src/main/java/de/diddiz/LogBlock/config/Config.java +++ b/src/main/java/de/diddiz/LogBlock/config/Config.java @@ -40,7 +40,7 @@ public class Config { public static Map toolsByName; public static Map toolsByType; public static int defaultDist, defaultTime; - public static int linesPerPage, linesLimit; + public static int linesPerPage, linesLimit, hardLinesLimit; public static boolean askRollbacks, askRedos, askClearLogs, askClearLogAfterRollback, askRollbackAfterBan; public static String banPermission; public static Set hiddenBlocks; @@ -102,6 +102,7 @@ public class Config { def.put("lookup.defaultTime", "30 minutes"); def.put("lookup.linesPerPage", 15); def.put("lookup.linesLimit", 1500); + def.put("lookup.hardLinesLimit", 100000); try { formatter = new SimpleDateFormat(config.getString("lookup.dateFormat", "MM-dd HH:mm:ss")); } catch (IllegalArgumentException e) { @@ -207,6 +208,7 @@ public class Config { defaultTime = parseTimeSpec(config.getString("lookup.defaultTime").split(" ")); linesPerPage = config.getInt("lookup.linesPerPage", 15); linesLimit = config.getInt("lookup.linesLimit", 1500); + hardLinesLimit = config.getInt("lookup.hardLinesLimit", 100000); askRollbacks = config.getBoolean("questioner.askRollbacks", true); askRedos = config.getBoolean("questioner.askRedos", true); askClearLogs = config.getBoolean("questioner.askClearLogs", true);