@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
    public void onAsyncLogin(AsyncPlayerPreLoginEvent event) {
        String ip = event.getAddress().getHostAddress();
        String reason = Ultrabans.DEFAULT_ADMIN;
        String admin = Ultrabans.DEFAULT_REASON;
        if (plugin.cacheIP.containsKey(ip)) {
            for (BanInfo info : plugin.cacheIP.get(ip)) {
                if (info.getType() == BanType.IPBAN || info.getType() == BanType.TEMPIPBAN) {
                    //TODO:TempCheck via Type

                    if (admin.equals(info.getAdmin()))
                        admin = info.getAdmin();
                    if (reason.equals(info.getReason()))
                        reason = info.getReason();
                    String bcmsg = plugin.getString(Language.IPBAN_LOGIN);
                    if (bcmsg.contains(Formatting.ADMIN))
                        bcmsg = bcmsg.replaceAll(Formatting.ADMIN, admin);
                    if (bcmsg.contains(Formatting.REASON))
                        bcmsg = bcmsg.replaceAll(Formatting.REASON, reason);
                    event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_BANNED, Formatting.replaceAmpersand(bcmsg));
                }
            }
        }
    }