@Override public final boolean onCommand( final CommandSender commandSender, final Command command, final String s, final String[] args) { if (args.length < 1) { commandSender.sendMessage("You need to specify the name of the player to unban."); return false; } final String playerName = args[0].toLowerCase(); boolean silentFlag = false; for (String arg : args) { if (arg.equalsIgnoreCase("-silent") || arg.equalsIgnoreCase("-si") || arg.equalsIgnoreCase("-s")) { silentFlag = true; } } if (!Banlist.isPlayerBanned(playerName)) { commandSender.sendMessage(String.format("Player %s is not banned.", playerName)); return true; } safeUnban(playerName, commandSender, silentFlag); return true; }
private void safeUnban( final String playerName, final CommandSender commandSender, final boolean silentFlag) { try { Banlist.unban(playerName); Bukkit.getLogger() .info(String.format("%s unbanned by %s", playerName, commandSender.getName())); if (!silentFlag) { Bukkit.broadcastMessage( AsshatModule.formatBroadcastMessage( configuration.getUnbanBroadcastMsg(), playerName, commandSender.getName(), "")); } } catch (Exception ex) { ex.printStackTrace(); commandSender.sendMessage(String.format("Something went wrong: %s", ex.getMessage())); } }
@Override public final List<String> onTabComplete( final CommandSender sender, final Command command, final String alias, final String[] args) { if (sender.hasPermission("voxelguest.asshat.unban")) { final List<String> bannedNamesList = Banlist.getBannedNames(); if (args.length == 0) { return bannedNamesList; } else { final List<String> tmpMatchList = new ArrayList<>(); final String completingParam = args[args.length - 1]; for (String bannedName : bannedNamesList) { if (bannedName.toLowerCase().startsWith(completingParam.toLowerCase())) { tmpMatchList.add(bannedName); } } return tmpMatchList; } } return Collections.emptyList(); }