// This claas was created by JaTiTV package de.jatitv.opsecurity.cmdManagement; import de.jatitv.opsecurity.config.config.SelectConfig; import de.jatitv.opsecurity.system.Main; 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 java.util.ArrayList; import java.util.HashMap; import java.util.List; public class CmdExecuter implements CommandExecutor, TabCompleter { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { String version = Main.plugin.getDescription().getVersion(); if (args.length == 0) { Commands.mainCommand(sender); } else { if (SelectConfig.OnlyOPcanUseThePlugin) { if (sender.isOp()) { switch (args[0].toLowerCase()) { case "reload": case "rl": if (sender.hasPermission("opsecurity.command.reload")) { Commands.reload(sender); } else sender.sendMessage(Main.Prefix + "§cYou do not have permission for OPSecurity!"); break; case "info": case "plugin": case "pl": case "version": case "ver": if (sender.hasPermission("opsecurity.command.info")) { Commands.info(sender); } else sender.sendMessage(Main.Prefix + "§cYou do not have permission for OPSecurity!"); break; case "help": default: if (sender.hasPermission("opsecurity.command.help")) { SelectConfig.Help(sender); } else sender.sendMessage(Main.Prefix + "§cYou do not have permission for OPSecurity!"); break; } } else sender.sendMessage(Main.Prefix + "§cOnly OPs can use OPSecurity!"); } else { switch (args[0].toLowerCase()) { case "reload": case "rl": if (sender.hasPermission("opsecurity.command.reload")) { Commands.reload(sender); } else sender.sendMessage(Main.Prefix + "§cYou do not have permission for OPSecurity!"); break; case "info": case "plugin": case "pl": case "version": case "ver": if (sender.hasPermission("opsecurity.command.info")) { Commands.info(sender); } else sender.sendMessage(Main.Prefix + "§cYou do not have permission for OPSecurity!"); break; case "help": default: if (sender.hasPermission("opsecurity.command.help")) { SelectConfig.Help(sender); } else sender.sendMessage(Main.Prefix + "§cYou do not have permission for OPSecurity!"); break; } } } return false; } private static HashMap arg1 = new HashMap() {{ put("help", "opsecurity.admin"); put("reload", "opsecurity.admin"); put("info", "opsecurity.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()) { Boolean passend = true; for (int i = 0; i < args[0].length(); i++) { if (args[0].length() >= command.length()) { passend = false; } else { if (args[0].charAt(i) != command.charAt(i)) { passend = false; } } } if (hasPermission(p, arg1.get(command)) && passend) { list.add(command); } } } if (args.length == 2) { switch (args[0]) { case "give": if (hasPermission(p, arg1.get("give"))) { for (Player player : Bukkit.getOnlinePlayers()) { Boolean passend = true; for (int i = 0; i < args[1].length(); i++) { if (args[1].length() >= player.getName().length()) { passend = false; } else { if (args[1].charAt(i) != player.getName().charAt(i)) { passend = false; } } } if (hasPermission(p, arg1.get(player)) && passend) { list.add(player.getName()); } } } break; } } } return list; } 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; } }