pingex
/
DiscordBot
Archived
1
0
Fork 0

Fancier /list display.

master
Pingex aka Raphaël 9 years ago
parent de2d582fa0
commit 902b9bfb6d

@ -12,6 +12,8 @@ import java.util.Map;
@Controllable(name="internal") @Controllable(name="internal")
class InternalCommandsModule extends AbstractModule class InternalCommandsModule extends AbstractModule
{ {
private static final int LINES_PER_PAGE = 10;
/** /**
* Constructor doing all the basic stuff, like registering as a Listener to Discord, getting a logger, etc. * Constructor doing all the basic stuff, like registering as a Listener to Discord, getting a logger, etc.
* @param client Discord Client instance used to register self. * @param client Discord Client instance used to register self.
@ -82,7 +84,7 @@ class InternalCommandsModule extends AbstractModule
Map<String, String> shorthands = CommandDispatcher.getInstance().getShortList(); Map<String, String> shorthands = CommandDispatcher.getInstance().getShortList();
if(page == null) page = 1; if(page == null) page = 1;
int pagesCount = (int) Math.ceil(commands.size()/10.0); int pagesCount = (int) Math.ceil(commands.size()/(double)LINES_PER_PAGE);
if(page > pagesCount || page <= 0) if(page > pagesCount || page <= 0)
return "Page #" + page + " doesn't exist. " + pagesCount + " pages are available."; return "Page #" + page + " doesn't exist. " + pagesCount + " pages are available.";
@ -90,13 +92,25 @@ class InternalCommandsModule extends AbstractModule
toReturn.append("(page ").append(page).append("/").append(pagesCount).append(") "); toReturn.append("(page ").append(page).append("/").append(pagesCount).append(") ");
toReturn.append("- Call `" + Configuration.getValue("general", "commandPrefix") + "help command` for individual help and usage.\n"); toReturn.append("- Call `" + Configuration.getValue("general", "commandPrefix") + "help command` for individual help and usage.\n");
int maxNameLength = 0, maxDescLength = 0;
for(Map.Entry<String, InvokableMethod> i : commands.entrySet())
{
// Maximum name length
if(i.getKey().length() > maxNameLength)
maxNameLength = i.getKey().length();
// Maximum desc length
if(i.getValue().getMethod().getAnnotation(Command.class).description().length() > maxDescLength)
maxDescLength = i.getValue().getMethod().getAnnotation(Command.class).description().length();
}
int pos = 1; int pos = 1;
for(Map.Entry<String, InvokableMethod> i : commands.entrySet()) for(Map.Entry<String, InvokableMethod> i : commands.entrySet())
{ {
if(pos > page*10-10 && pos <= page*10) if(pos > page*LINES_PER_PAGE-LINES_PER_PAGE && pos <= page*LINES_PER_PAGE)
{ {
toReturn.append("- ").append(i.getKey()); toReturn.append("* ").append(String.format("%1$-" + (maxNameLength+1) + "s", i.getKey()));
toReturn.append("\t").append(i.getValue().getMethod().getAnnotation(Command.class).description()); toReturn.append(String.format("%1$-" + (maxDescLength+1) + "s", i.getValue().getMethod().getAnnotation(Command.class).description()));
// Shorthand // Shorthand
if(shorthands.containsValue(i.getKey())) if(shorthands.containsValue(i.getKey()))