// This claas was created by JaTiTV package de.jatitv.papitest.commands; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class TabComplete implements TabCompleter { private static final HashMap arg1 = new HashMap() {{ put("", "papitest.admin"); put("info", "papitest.admin"); put("reload", "papitest.admin"); }}; @Override public List onTabComplete(CommandSender sender, Command cmd, String s, String[] args) { List list = new ArrayList<>(); if (sender instanceof Player) { Player p = (Player) sender; switch (args.length) { case 1: for (String command : arg1.keySet()) { if (hasPermission(p, arg1.get(command)) && passend(command, args[0])) { list.add(command); } } break; case 2: if (sender.hasPermission("papitest.admin")) { if (args[1].contains("-")) { if (args[1].contains("-p:")) { for (Player player : Bukkit.getOnlinePlayers()) { if (passend("-p:" + player.getName(), args[1])) { list.add("-p:" + player.getName()); } } } else { list.add("-p:"); } } } break; } } return list; } private static Boolean passend(String command, String arg) { for (int i = 0; i < arg.toUpperCase().length(); i++) { if (arg.toUpperCase().length() >= command.toUpperCase().length()) { return false; } else { if (arg.toUpperCase().charAt(i) != command.toUpperCase().charAt(i)) { return false; } } } return true; } public static boolean hasPermission(Player player, String permission) { if (player.isOp()) { return true; } String[] Permissions = permission.split(";"); for (String perm : Permissions) { if (player.hasPermission(perm)) { return true; } } return false; } }