EmeraldEgg
我的插件参数太多了,我想放在tab中,看到了一个TabExecutor类,想知道怎么用,怎么才能放在tab中

Rothes
本帖最后由 Rothes 于 2021-3-27 00:07 编辑

主类:
@Override
public void onEnable() {
   Commands.SubCommands1.add("help");
   Commands.SubCommands1.add("toggle");
   Commands.SubCommands1.add("reload");
   this.getCommand("AutoBroadcastLite").setExecutor(new Commands());
   Bukkit.getServer().getPluginCommand("AutoBroadcastLite").setTabCompleter(new Commands());
}

Commands类:
public static List<String> SubCommands1 = new ArrayList<>();

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {}

@Override
   public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
   List<String> List = new ArrayList<>();
      if (args.length == 1) {
         SubCommands1.forEach(s -> {
            if (sender.hasPermission("autobroadcastLite." + s) || sender.isOp()) List.add(s);
         });
         return List;
      }
   return null;
}

args.length == 1 中返回的List是 第一个子指令的tab列表
args.length == 2 是第二个子指令的列表,以此类推...
返回null按tab就没有任何东西
排版弄成这样已经很尽力了..凑合着看