forked from LogBlock/LogBlock
Fix: nocache parameter showed entries from the previous lookup
This commit is contained in:
@@ -371,19 +371,24 @@ public class CommandsHandler implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void showPage(CommandSender sender, int page) {
|
private static void showPage(CommandSender sender, int page) {
|
||||||
final Session session = getSession(sender);
|
showPage(sender, page, getSession(sender).lookupCache, true);
|
||||||
if (session.lookupCache != null && session.lookupCache.length > 0) {
|
}
|
||||||
|
|
||||||
|
private static void showPage(CommandSender sender, int page, LookupCacheElement[] lookupElements, boolean setSessionPage) {
|
||||||
|
if (lookupElements != null && lookupElements.length > 0) {
|
||||||
final int startpos = (page - 1) * linesPerPage;
|
final int startpos = (page - 1) * linesPerPage;
|
||||||
if (page > 0 && startpos <= session.lookupCache.length - 1) {
|
if (page > 0 && startpos <= lookupElements.length - 1) {
|
||||||
final int stoppos = startpos + linesPerPage >= session.lookupCache.length ? session.lookupCache.length - 1 : startpos + linesPerPage - 1;
|
final int stoppos = startpos + linesPerPage >= lookupElements.length ? lookupElements.length - 1 : startpos + linesPerPage - 1;
|
||||||
final int numberOfPages = (int) Math.ceil(session.lookupCache.length / (double) linesPerPage);
|
final int numberOfPages = (int) Math.ceil(lookupElements.length / (double) linesPerPage);
|
||||||
if (numberOfPages != 1) {
|
if (numberOfPages != 1) {
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + "Page " + page + "/" + numberOfPages);
|
sender.sendMessage(ChatColor.DARK_AQUA + "Page " + page + "/" + numberOfPages);
|
||||||
}
|
}
|
||||||
for (int i = startpos; i <= stoppos; i++) {
|
for (int i = startpos; i <= stoppos; i++) {
|
||||||
sender.sendMessage(ChatColor.GOLD + (session.lookupCache[i].getLocation() != null ? "(" + (i + 1) + ") " : "") + session.lookupCache[i].getMessage());
|
sender.sendMessage(ChatColor.GOLD + (lookupElements[i].getLocation() != null ? "(" + (i + 1) + ") " : "") + lookupElements[i].getMessage());
|
||||||
|
}
|
||||||
|
if (setSessionPage) {
|
||||||
|
getSession(sender).page = page;
|
||||||
}
|
}
|
||||||
session.page = page;
|
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(ChatColor.RED + "There isn't a page '" + page + "'");
|
sender.sendMessage(ChatColor.RED + "There isn't a page '" + page + "'");
|
||||||
}
|
}
|
||||||
@@ -485,8 +490,9 @@ public class CommandsHandler implements CommandExecutor {
|
|||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
blockchanges.add(factory.getLookupCacheElement(rs));
|
blockchanges.add(factory.getLookupCacheElement(rs));
|
||||||
}
|
}
|
||||||
|
LookupCacheElement[] blockChangeArray = blockchanges.toArray(new LookupCacheElement[blockchanges.size()]);
|
||||||
if (!params.noCache) {
|
if (!params.noCache) {
|
||||||
getSession(sender).lookupCache = blockchanges.toArray(new LookupCacheElement[blockchanges.size()]);
|
getSession(sender).lookupCache = blockChangeArray;
|
||||||
}
|
}
|
||||||
if (blockchanges.size() > linesPerPage) {
|
if (blockchanges.size() > linesPerPage) {
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA.toString() + blockchanges.size() + " changes found." + (blockchanges.size() == linesLimit ? " Use 'limit -1' to see all changes." : ""));
|
sender.sendMessage(ChatColor.DARK_AQUA.toString() + blockchanges.size() + " changes found." + (blockchanges.size() == linesLimit ? " Use 'limit -1' to see all changes." : ""));
|
||||||
@@ -498,7 +504,11 @@ public class CommandsHandler implements CommandExecutor {
|
|||||||
sender.sendMessage(ChatColor.GOLD + "Created - Destroyed - " + (params.sum == SummarizationMode.TYPES ? "Block" : "Player"));
|
sender.sendMessage(ChatColor.GOLD + "Created - Destroyed - " + (params.sum == SummarizationMode.TYPES ? "Block" : "Player"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!params.noCache) {
|
||||||
showPage(sender, 1);
|
showPage(sender, 1);
|
||||||
|
} else {
|
||||||
|
showPage(sender, 1, blockChangeArray, false);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + "No results found.");
|
sender.sendMessage(ChatColor.DARK_AQUA + "No results found.");
|
||||||
if (!params.noCache) {
|
if (!params.noCache) {
|
||||||
|
Reference in New Issue
Block a user