package net.tylermurphy.hideAndSeek.bukkit; import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.stream.Collectors; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; public class TabCompleter{ public static List handleTabComplete(CommandSender sender, Command command, String label, String[] args) { if(args.length == 1) { return new ArrayList(CommandHandler.COMMAND_REGISTER.keySet()) .stream() .filter(handle -> sender.hasPermission("hideandseek."+handle.toLowerCase()) && handle.toLowerCase().startsWith(args[0].toLowerCase(Locale.ROOT))) .collect(Collectors.toList()); } else if(args.length > 1) { if(!CommandHandler.COMMAND_REGISTER.containsKey(args[0].toLowerCase())) { return null; } else { String[] usage = CommandHandler.COMMAND_REGISTER.get(args[0].toLowerCase()).getUsage().split(" "); if(args.length - 2 < usage.length) { String parameter = usage[args.length-2]; if(parameter.equals("")) { return null; } else { List temp = new ArrayList(); temp.add(parameter.replace("<", "").replace(">", "")); return temp; } } else { return null; } } } return null; } }