co.aikar.commands

## Interface RootCommand

    public interface RootCommand

### Method Summary

All Methods Instance Methods Abstract Methods Default Methods
`void` `addChild(BaseCommand command)`
`default void` `addChildShared(List<BaseCommand> children, com.google.common.collect.SetMultimap<String,RegisteredCommand> subCommands, BaseCommand command)`
`default BaseCommand` `execute(CommandIssuer sender, String commandLabel, String[] args)`
`default BaseCommand` `getBaseCommand(String[] args)`
`List<BaseCommand>` `getChildren()`
`String` `getCommandName()`
`default RegisteredCommand` `getDefaultRegisteredCommand()`
`default BaseCommand` `getDefCommand()`
`default String` `getDescription()`
`CommandManager` `getManager()`
`com.google.common.collect.SetMultimap<String,RegisteredCommand>` `getSubCommands()`
`default List<String>` `getTabCompletions(CommandIssuer sender, String alias, String[] args)`
`default List<String>` `getTabCompletions(CommandIssuer sender, String alias, String[] args, boolean commandsOnly)`
`default List<String>` `getTabCompletions(CommandIssuer sender, String alias, String[] args, boolean commandsOnly, boolean isAsync)`
`default String` `getUniquePermission()`
`default String` `getUsage()`
`default boolean` `hasAnyPermission(CommandIssuer issuer)`

### Method Detail

#### addChild

    void addChild(BaseCommand command)

#### getManager

    CommandManager getManager()

#### getSubCommands

    com.google.common.collect.SetMultimap<String,RegisteredCommand> getSubCommands()

#### getChildren

    List<BaseCommand> getChildren()

#### getCommandName

    String getCommandName()

#### addChildShared

    default void addChildShared(List<BaseCommand> children,
                                com.google.common.collect.SetMultimap<String,RegisteredCommand> subCommands,
                                BaseCommand command)

#### getUniquePermission

    default String getUniquePermission()

Returns:
  If this root command can be summarized to a single required permission node to use it, returns that value. If any RegisteredCommand is permission-less, or has multiple required permission nodes, null is returned.

#### hasAnyPermission

    default boolean hasAnyPermission(CommandIssuer issuer)

#### execute

    default BaseCommand execute(CommandIssuer sender,
                                String commandLabel,
                                String[] args)

#### getBaseCommand

    default BaseCommand getBaseCommand(String[] args)

#### getTabCompletions

    default List<String> getTabCompletions(CommandIssuer sender,
                                           String alias,
                                           String[] args)

#### getTabCompletions

    default List<String> getTabCompletions(CommandIssuer sender,
                                           String alias,
                                           String[] args,
                                           boolean commandsOnly)

#### getTabCompletions

    default List<String> getTabCompletions(CommandIssuer sender,
                                           String alias,
                                           String[] args,
                                           boolean commandsOnly,
                                           boolean isAsync)

#### getDefaultRegisteredCommand

    default RegisteredCommand getDefaultRegisteredCommand()

#### getDefCommand

    default BaseCommand getDefCommand()

#### getDescription

    default String getDescription()

#### getUsage

    default String getUsage()