package net.t2code.lib.Spigot.system; import net.md_5.bungee.protocol.packet.Commands; import net.t2code.lib.Spigot.Lib.messages.T2CodeTemplate; import net.t2code.lib.Spigot.Lib.messages.send; import net.t2code.lib.Spigot.Lib.update.UpdateAPI; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.URI; import java.nio.file.*; import java.util.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class CmdExecuter implements CommandExecutor, TabCompleter { private static Plugin plugin = Main.plugin; private static String prefix = Main.prefix; private static List autor = Main.autor; private static String version = Main.version; private static String spigot = Main.spigot; private static String discord = Main.discord; @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (args.length == 0) { T2CodeTemplate.sendInfo(sender, prefix, spigot, discord, autor, version, UpdateAPI.PluginVersionen.get(plugin.getName()).publicVersion); } else { if ("debug".equals(args[0].toLowerCase())) { if (args.length != 2) { send.sender(sender,"§4Use: §7/t2code debug createReportLog"); return false; } if ("createreportlog".equals(args[1].toLowerCase())) { CreateReportLog.create(sender); } else send.sender(sender,"§4Use: §7/t2code debug createReportLog"); } else send.sender(sender,"§4Use: §7/t2code debug createReportLog"); } return false; } //TabCompleter private static HashMap arg1 = new HashMap() {{ put("debug", "t2code.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; if (args.length == 1) { for (String command : arg1.keySet()) { if (hasPermission(p, arg1.get(command)) && passend(command, args[0])) { list.add(command); } } } if (args.length == 2 && args[0].equalsIgnoreCase("debug")) { if (sender.hasPermission("t2code.admin")) { if (hasPermission(p, arg1.get("debug")) && passend("debug", args[1])) { list.add("createReportLog"); } } return list; } } 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; } }