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 net.t2code.lib.Util; 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 { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (!sender.hasPermission("t2code.admin")){ send.sender(sender,"§4No Permission §8t2code.admin"); return false; } if (args.length == 0) { T2CodeTemplate.sendInfo(sender, Util.getPrefix(), Util.getSpigot(), Util.getDiscord(), Main.autor, Main.version, UpdateAPI.PluginVersionen.get(Main.plugin.getName()).publicVersion); } else { switch (args[0].toLowerCase()) { case "info": case "plugin": case "pl": case "version": case "ver": T2CodeTemplate.sendInfo(sender, Util.getPrefix(), Util.getSpigot(), Util.getDiscord(), Main.autor, Main.version, UpdateAPI.PluginVersionen.get(Main.plugin.getName()).publicVersion); return false; } 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"); put("info", "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; } }