    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (!(sender instanceof Player)) {
            sender.sendMessage("Can't vanish if not a player!");
            return true;
        }
        if (args.length == 0) {
            boolean vanishing = true;
            String bit;
            if (this.vanished.contains(sender.getName())) {
                vanishing = false;
                this.vanished.remove(sender.getName());
                bit = "unvanished";
            } else {
                this.vanished.add(sender.getName());
                bit = "vanished";
            }
            final Player player = (Player) sender;
            for (final Player plr : this.getServer().getOnlinePlayers()) {
                if (vanishing && !plr.hasPermission(this.vanishPerm)) {
                    plr.hidePlayer(player);
                } else if (!vanishing && plr.canSee(player)) {
                    plr.showPlayer(player);
                }
            }
            this.getServer().broadcast(ChatColor.AQUA + player.getName() + " has " + bit, this.vanishPerm);
        } else if (args[0].equalsIgnoreCase("list")) {
            final StringBuilder list = new StringBuilder();
            list.append(ChatColor.AQUA);
            list.append("Vanished (");
            list.append(this.vanished.size());
            list.append("): ");
            for (final String name : this.vanished) {
                list.append(name);
                list.append(" ,");
            }
            list.setLength(list.length() - 2);
            sender.sendMessage(list.toString());
        }
        return true;
    }

    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (!(sender instanceof Player)) {
            sender.sendMessage("Can't vanish if not a player!");
            return true;
        }
        if (args.length == 0) {
            boolean vanishing = true;
            String bit;
            if (this.vanished.contains(sender.getName())) {
                vanishing = false;
                this.vanished.remove(sender.getName());
                bit = "unvanished";
            } else {
                this.vanished.add(sender.getName());
                bit = "vanished";
            }
            final Player player = (Player) sender;
            for (final Player plr : this.getServer().getOnlinePlayers()) {
                if (vanishing && !plr.hasPermission(this.vanishPerm)) {
                    plr.hidePlayer(player);
                } else if (!vanishing && !plr.canSee(player)) {
                    plr.showPlayer(player);
                }
            }
            this.getServer().broadcast(ChatColor.AQUA + player.getName() + " has " + bit, this.vanishPerm);
        } else if (args[0].equalsIgnoreCase("list")) {
            final StringBuilder list = new StringBuilder();
            list.append(ChatColor.AQUA);
            list.append("Vanished (");
            list.append(this.vanished.size());
            list.append("): ");
            for (final String name : this.vanished) {
                list.append(name);
                list.append(", ");
            }
            list.setLength(list.length() - 2);
            sender.sendMessage(list.toString());
        }
        return true;
    }
