001package com.ericlam.mc.bungee.hnmc.commands.caxerx;
002
003import net.md_5.bungee.api.CommandSender;
004
005import java.util.ArrayList;
006import java.util.List;
007
008/**
009 * 父類指令預設器
010 * <p>
011 * 自動返回幫助訊息
012 *
013 * @author caxerx
014 */
015public class DefaultCommand extends CommandNode {
016
017    /**
018     * @param parent      父類指令
019     * @param command     指令
020     * @param permission  權限
021     * @param description 介紹
022     * @param alias       縮寫
023     */
024    public DefaultCommand(CommandNode parent, String command, String permission, String description, String... alias) {
025        super(parent, command, permission, description, null, alias);
026    }
027
028    @Override
029    public void executeCommand(CommandSender sender, List<String> args) {
030        HelpOutputBuilder builder = new HelpOutputBuilder(this);
031        getSubCommands().forEach(builder::append);
032        sender.sendMessage(builder.build());
033    }
034
035    @Override
036    public List<String> executeTabCompletion(CommandSender sender, List<String> args) {
037        ArrayList<String> result = new ArrayList<>();
038        getSubCommands().forEach(sub -> result.add(sub.getAlias().get(0)));
039        return result;
040    }
041}