package eu.univento.core.commands; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import eu.univento.core.Core; import eu.univento.core.api.AutoCommand; import eu.univento.core.api.Messages; import eu.univento.core.api.player.CustomPlayer; import eu.univento.core.api.player.Perms.Ranks; /** * command to ban players * @author joethei * @version 1.0 */ public class Ban extends AutoCommand{ /** * @param plugin main class * @param command command to execute * @param description describes the command * @param aliases aliases of command */ public Ban(Core plugin, String command, String description, String[] aliases) { super(plugin, command, description, aliases); } @Override public boolean execute(CommandSender sender, String label, String[] args) { if(sender instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer(sender.getName()); if(p.isAllowed(Ranks.Moderator)) { if(args.length >= 3) { if(Bukkit.getPlayer(args[0]) != null) { CustomPlayer t = CustomPlayer.getPlayer(args[0]); if(getReasons().containsKey(args[1])) { String string = getReasons().get(args[1]); int id = Integer.parseInt(string); t.ban(getReasons().get(id), p, getBanDurations().get(id)); }else { p.sendMessage(Messages.PREFIX + "§cDieser Grund exsistiert nicht"); } }else { p.sendMessage(Messages.PREFIX + "§cDer Spieler " + args[0] + " exsistiert nicht, oder ist nicht online."); } }else { p.sendMessage(Messages.PREFIX + "§cNutze /ban "); } }else { sender.sendMessage(Messages.NO_PERMS); } }else { sender.sendMessage(Messages.NOT_A_PLAYER); } return true; } @Override public List tabComplete(CommandSender sender, String label, String[] args) { List list = new ArrayList(); for(int i = 0; i >= getReasons().size(); i++) { list.add(getReasons().get(i)); } return list; } /** * @return all possible ban reasons */ private HashMap getReasons() { HashMap map = new HashMap(); map.put(1, "Hacking"); map.put(2, "Griefing"); map.put(3, "Bugusing"); map.put(4, "Beleidigung"); map.put(5, "Spam"); map.put(6, "Banumgehung"); map.put(7, "Werbung"); map.put(8, "Trolling"); return map; } /** * @return ban durations to reason */ private HashMap getBanDurations() { HashMap map = new HashMap(); map.put(1, 60); map.put(2, 30); map.put(3, 20); map.put(4, 10); map.put(5, 5); map.put(6, 50); map.put(7, 15); map.put(8, 25); return map; } }