T2CodeLib/src/main/java/net/t2code/lib/Spigot/Lib/commands/Tab.java

105 lines
3.8 KiB
Java

package net.t2code.lib.Spigot.Lib.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.Iterator;
import java.util.List;
public class Tab {
public static void tab(List<String> matches, CommandSender sender, int arg, String[] args, String perm, Boolean onlinePlayer) {
if (args.length == arg + 1) {
Iterator var6 = Bukkit.getOnlinePlayers().iterator();
while (var6.hasNext()) {
Player player1 = (Player) var6.next();
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) {
if (args[argEquals].toLowerCase().equals(equalsValue)) {
Iterator var6 = Bukkit.getOnlinePlayers().iterator();
while (var6.hasNext()) {
Player player1 = (Player) var6.next();
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) {
//
// for (String command : permMap.keySet()) {
// if (hasPermission(sender, permMap.get(command)) && passend(command, args[arg])) {
// matches.add(command);
// }
// }
//}
public static void tab(List<String> matches, CommandSender sender, int arg, String[] args, HashMap<String, String> permMap) {
if (args.length == arg + 1) {
for (String command : permMap.keySet()) {
if (hasPermission(sender, permMap.get(command)) && passend(command, args[arg])) {
matches.add(command);
}
}
}
}
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) {
if (args[argEquals].toLowerCase().equals(equalsValue)) {
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;
}
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(CommandSender sender, String permission) {
String[] Permissions = permission.split(";");
for (String perm : Permissions) {
if (sender.hasPermission(perm)) {
return true;
}
}
return false;
}
}