public boolean registerCommand(ChunkyCommand command) throws ChunkyUnregisteredException {
        if (command.getParent() == null) {
            if (!registeredCommands.containsKey(command.getFullName())) {
                registeredCommands.put(command.getFullName(), command);
                registerSuperAliases(command);
                return true;
            }
            return false;
        } else {
            ChunkyCommand parentCommand = Chunky.getModuleManager().getCommandByName(command.getParent().getFullName());
            if (command.inheritsPermission() && command.getPermission() == null) {
                command.setPermission(parentCommand.getPermission());
            }
            if (parentCommand != null) {
                registerSuperAliases(command);
                return parentCommand.addChild(command);
            } else {
                throw new ChunkyUnregisteredException("Parent command not registered!");
            }
        }
    }