我的插件参数太多了,我想放在tab中,看到了一个TabExecutor类,想知道怎么用,怎么才能放在tab中
本帖最后由 Rothes 于 2021-3-27 00:07 编辑
主类:
Commands类:
args.length == 1 中返回的List是 第一个子指令的tab列表
args.length == 2 是第二个子指令的列表,以此类推...
返回null按tab就没有任何东西
排版弄成这样已经很尽力了..凑合着看
主类:
| @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就没有任何东西
排版弄成这样已经很尽力了..凑合着看