package net.t2code.t2codelib.SPIGOT.api.commands; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class T2Ctab { public static void tab(List matches, CommandSender sender, int arg, String[] args, String perm, Boolean onlinePlayer) { if (args.length != arg + 1) return; for (Player player1 : Bukkit.getOnlinePlayers()) { if (passend(player1.getName(), args[arg]) && hasPermission(sender, perm)) { matches.add(player1.getName()); } } } public static void tab(List matches, CommandSender sender, int argEquals, String equalsValue, int arg, String[] args, String perm, Boolean onlinePlayer) { if (args.length != arg + 1) return; if (!args[argEquals].toLowerCase().equals(equalsValue)) return; for (Player player1 : Bukkit.getOnlinePlayers()) { if (passend(player1.getName(), args[arg]) && hasPermission(sender, perm)) { matches.add(player1.getName()); } } } public static void tab(List matches, CommandSender sender, int arg, String[] args, HashMap permMap, Boolean onlinePlayer, String permForPlayer) { if (args.length != arg + 1) return; for (String command : permMap.keySet()) { if (hasPermission(sender, permMap.get(command)) && passend(command, args[arg])) { matches.add(command); } else if (onlinePlayer != null && permForPlayer != null) { tab(matches, sender, arg, args, permForPlayer, onlinePlayer); } } } public static void tab(List matches, CommandSender sender, int arg, String[] args, HashMap permMap) { tab(matches, sender, arg, args, permMap, null, null); } public static void tab(List matches, CommandSender sender, int argEquals, String equalsValue, int arg, String[] args, HashMap permMap) { if (args.length != arg + 1) return; if (!args[argEquals].toLowerCase().equals(equalsValue)) return; for (String command : permMap.keySet()) { if (hasPermission(sender, permMap.get(command)) && passend(command, args[arg])) { matches.add(command); } } } public static List tab(CommandSender sender, int arg, String[] args, String perm, String command) { List matches = new ArrayList<>(); if (hasPermission(sender, perm) && passend(command, args[arg])) { matches.add(command); } return matches; } public 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(CommandSender sender, String permission) { String[] Permissions = permission.split(";"); for (String perm : Permissions) { if (sender.hasPermission(perm)) { return true; } } return false; } }