@EventHandler
    public void onProxyPing(ProxyPingEvent e) {
        PendingConnection c = e.getConnection();
        ListenerInfo l = c.getListener();
        if (config != null) {
            Profile profile = config.findProfile(this, c, l);
            if (profile != null) {
                ServerPing response = e.getResponse();
                Favicon icon = profile.getFavicon(this);
                Protocol protocol = profile.getProtocol(this, c);
                String user = userData.getPlayer(c.getAddress().getAddress().getHostAddress());
                String motd = null;
                if (user != null) {
                    motd = profile.getDynamicMotd(user);
                } 
                if (motd == null) {
                    motd = profile.getStaticMotd();
                }
                Players players = profile.getPlayers(this);
                if (icon != null) {
                    response.setFavicon(icon);
                }
                if (protocol != null) {
                    response.setVersion(protocol);
                }
                if (motd != null) {
                    response.setDescription(motd);
                }
                if (players != null) {
                    response.setPlayers(players);
                }
            }
        }
    }