@Override
    public boolean onCommand(final CommandSender sender, Command command, String label, final String[] args) {
        if (!sender.hasPermission(command.getPermission())) {
            sender.sendMessage(Ultrabans.DEFAULT_DENY_MESSAGE);
            return true;
        }
        if (args.length < 1)
            return false;
        plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
            @Override
            public void run() {
                String p = args[0];

                p = Formatting.expandName(p);
                String ip = plugin.getUBDatabase().getAddress(p);
                if (ip == null) {
                    String msg = plugin.getConfig().getString("Messages.DupeIP.Failed", "Unable to view ip for %victim% !");
                    if (msg.contains(Ultrabans.VICTIM))
                        msg = msg.replaceAll(Ultrabans.VICTIM, p);
                    msg = Formatting.formatMessage(msg);
                    sender.sendMessage(ChatColor.RED + msg);
                    return;
                }
                List<String> list = plugin.getUBDatabase().listPlayers(ip);
                String msg = plugin.getConfig().getString("Messages.DupeIP.Header", "Scanning Current IP of %victim%: %ip% !");
                if (msg.contains(Ultrabans.VICTIM))
                    msg = msg.replaceAll(Ultrabans.VICTIM, p);
                if (msg.contains("%ip%"))
                    msg = msg.replaceAll("%ip%", ip);
                msg = Formatting.formatMessage(msg);
                sender.sendMessage(msg);
                for (String name : list)
                    if (!name.equalsIgnoreCase(p))
                        sender.sendMessage(ChatColor.GRAY + "Player: " + name + " duplicates player: " + p + "!");
                msg = plugin.getConfig().getString("Messages.DupeIP.Completed", "Scanning Complete!");
                msg = Formatting.formatMessage(msg);
                sender.sendMessage(msg);
            }
        });
        return true;
    }