001package co.aikar.commands;
002
003import com.google.common.collect.HashMultimap;
004import com.google.common.collect.SetMultimap;
005
006import java.util.ArrayList;
007import java.util.List;
008
009public class JDARootCommand implements RootCommand {
010
011    private final String name;
012    boolean isRegistered = false;
013    private JDACommandManager manager;
014    private BaseCommand defCommand;
015    private SetMultimap<String, RegisteredCommand> subCommands = HashMultimap.create();
016    private List<BaseCommand> children = new ArrayList<>();
017
018    JDARootCommand(JDACommandManager manager, String name) {
019        this.manager = manager;
020        this.name = name;
021    }
022
023    @Override
024
025    public void addChild(BaseCommand command) {
026        if (this.defCommand == null || !command.subCommands.get(BaseCommand.DEFAULT).isEmpty()) {
027            this.defCommand = command;
028        }
029        addChildShared(this.children, this.subCommands, command);
030    }
031
032    @Override
033    public CommandManager getManager() {
034        return this.manager;
035    }
036
037    @Override
038    public SetMultimap<String, RegisteredCommand> getSubCommands() {
039        return this.subCommands;
040    }
041
042    @Override
043    public List<BaseCommand> getChildren() {
044        return this.children;
045    }
046
047    @Override
048    public String getCommandName() {
049        return this.name;
050    }
051
052    @Override
053    public BaseCommand getDefCommand() {
054        return defCommand;
055    }
056
057}