@SafeVarargs
	public CommandHandler(P plugin, String defaultLabel, int pageCommands, AbstractCommand<P>... commands) throws IllegalArgumentException {
		this.plugin = plugin;
		this.defaultLabel = defaultLabel;
		this.commands = new LinkedHashMap<String, AbstractCommand<P>>();
		for (AbstractCommand<P> command : commands) {
			String name = command.getName();
			if (this.commands.containsKey(name) || name.equals("help")) {
				throw new IllegalArgumentException("Duplicate command names");
			}
			this.commands.put(name, command);
		}
		this.commands.put("help", new HelpCommand(this, pageCommands));
	}