@Override public String getCommandUsage(ICommandSender sender) { String sub = ""; int i = 0; for (IESubCommand com : CommandHandler.commands) sub += ((i++) > 0 ? "|" : "") + com.getIdent(); return "/ie <" + sub + ">"; }
@Override public List addTabCompletionOptions(ICommandSender sender, String[] args) { ArrayList<String> list = new ArrayList<String>(); if (args.length > 0) for (IESubCommand sub : commands) { if (args.length == 1) { if (args[0].isEmpty() || sub.getIdent().startsWith(args[0].toLowerCase())) list.add(sub.getIdent()); } else if (sub.getIdent().equalsIgnoreCase(args[0])) { String[] redArgs = new String[args.length - 1]; System.arraycopy(args, 1, redArgs, 0, redArgs.length); ArrayList<String> subCommands = sub.getSubCommands(redArgs); if (subCommands != null) list.addAll(subCommands); } } return list; }
@Override public void processCommand(ICommandSender sender, String[] args) { if (args.length > 0) for (IESubCommand com : commands) { if (com.getIdent().equalsIgnoreCase(args[0])) com.perform(sender, args); } else { String sub = ""; int i = 0; for (IESubCommand com : CommandHandler.commands) sub += ((i++) > 0 ? ", " : "") + com.getIdent(); sender.addChatMessage(new ChatComponentTranslation(Lib.CHAT_COMMAND + "available", sub)); } }