90 lines
3.5 KiB
Java
90 lines
3.5 KiB
Java
package net.t2code.t2codelib.BUNGEE.api.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 T2CBtab {
|
|
|
|
|
|
public static void tab(List<String> matches, CommandSender sender, int arg, String[] args, String perm, Boolean onlinePlayer) {
|
|
if (args.length != arg + 1) return;
|
|
for (ProxiedPlayer player1 : ProxyServer.getInstance().getPlayers()) {
|
|
if (passend(player1.getName(), args[arg]) && hasPermission(sender, perm)) {
|
|
matches.add(player1.getName());
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void tab(List<String> 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 (ProxiedPlayer player1 : ProxyServer.getInstance().getPlayers()) {
|
|
if (passend(player1.getName(), args[arg]) && hasPermission(sender, perm)) {
|
|
matches.add(player1.getName());
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void tab(List<String> matches, CommandSender sender, int arg, String[] args, HashMap<String, String> 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<String> matches, CommandSender sender, int arg, String[] args, HashMap<String, String> permMap) {
|
|
tab(matches, sender, arg, args, permMap, null, null);
|
|
}
|
|
|
|
public static void tab(List<String> matches, CommandSender sender, int argEquals, String equalsValue, int arg, String[] args, HashMap<String, String> 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<String> tab(CommandSender sender, int arg, String[] args, String perm, String command) {
|
|
List<String> 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;
|
|
}
|
|
}
|