package net.t2code.lib.Bungee.Lib.commands; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.connection.ProxiedPlayer; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; public class BTab { public static Iterable tab(CommandSender sender, String[] args, String perm,Boolean onlinePlayer){ List matches = new ArrayList<>(); Iterator var6 = ProxyServer.getInstance().getPlayers().iterator(); while (var6.hasNext()) { ProxiedPlayer player1 = (ProxiedPlayer) var6.next(); if (passend(player1.getName(), args[0]) && hasPermission(sender, perm)){ matches.add(player1.getName()); } } return matches; } public static Iterable tab(CommandSender sender, String[] args, HashMap permMap) { List matches = new ArrayList<>(); for (String command : permMap.keySet()) { if (hasPermission(sender, permMap.get(command)) && passend(command, args[0])) { matches.add(command); } } return matches; } public static Iterable tab(CommandSender sender, String[] args, String perm, String command) { List matches = new ArrayList<>(); if (hasPermission(sender, perm) && passend(command, args[0])) { 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; } }