From c165ca2c36cbe24cfead32ee90f63f4b9571ea1c Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 9 Oct 2017 21:09:43 -0400 Subject: [PATCH] pagination on help progress --- .../java/co/aikar/commands/CommandContexts.java | 2 +- .../main/java/co/aikar/commands/CommandHelp.java | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/co/aikar/commands/CommandContexts.java b/core/src/main/java/co/aikar/commands/CommandContexts.java index 561e1e8f..c4ce6e02 100644 --- a/core/src/main/java/co/aikar/commands/CommandContexts.java +++ b/core/src/main/java/co/aikar/commands/CommandContexts.java @@ -167,7 +167,7 @@ public class CommandContexts helpEntries = new ArrayList<>(); private int page; + private int perPage = 15; private List search; public CommandHelp(CommandManager manager, RootCommand rootCommand, CommandIssuer issuer) { @@ -113,9 +114,19 @@ public class CommandHelp { issuer.sendMessage(MessageType.ERROR, MessageKeys.NO_COMMAND_MATCHED_SEARCH, "{search}", ACFUtil.join(this.search, " ")); results = getHelpEntries().iterator(); } + int min = (this.page-1) * this.perPage; // TODO: per page configurable? + int max = min + this.perPage; + int i = 0; while (results.hasNext()) { HelpEntry e = results.next(); + if (i >= max) { + break; + } + if (i++ < min) { + continue; + } + String formatted = this.manager.formatMessage(issuer, MessageType.HELP, format, getFormatReplacements(e)); for (String msg : ACFPatterns.NEWLINE.split(formatted)) { issuer.sendMessageInternal(ACFUtil.rtrim(msg)); @@ -143,8 +154,9 @@ public class CommandHelp { return helpEntries; } - public void setPage(int page) { + public void setPage(int page, int perPage) { this.page = page; + this.perPage = 15; } public void setSearch(List search) {