    001    package net.minecraft.client.multiplayer;
    002
    003    import cpw.mods.fml.relauncher.Side;
    004    import cpw.mods.fml.relauncher.SideOnly;
    005    import java.net.InetAddress;
    006    import java.util.ArrayList;
    007    import java.util.Collections;
    008    import java.util.Iterator;
    009    import java.util.List;
    010
    011    @SideOnly(Side.CLIENT)
    012    public class LanServerList
    013    {
    014        private ArrayList listOfLanServers = new ArrayList();
    015        boolean wasUpdated;
    016
    017        public synchronized boolean getWasUpdated()
    018        {
    019            return this.wasUpdated;
    020        }
    021
    022        public synchronized void setWasNotUpdated()
    023        {
    024            this.wasUpdated = false;
    025        }
    026
    027        public synchronized List getLanServers()
    028        {
    029            return Collections.unmodifiableList(this.listOfLanServers);
    030        }
    031
    032        public synchronized void func_77551_a(String par1Str, InetAddress par2InetAddress)
    033        {
    034            String var3 = ThreadLanServerPing.getMotdFromPingResponse(par1Str);
    035            String var4 = ThreadLanServerPing.getAdFromPingResponse(par1Str);
    036
    037            if (var4 != null)
    038            {
    039                int var5 = var4.indexOf(58);
    040
    041                if (var5 > 0)
    042                {
    043                    var4 = par2InetAddress.getHostAddress() + var4.substring(var5);
    044                }
    045
    046                boolean var6 = false;
    047                Iterator var7 = this.listOfLanServers.iterator();
    048
    049                while (var7.hasNext())
    050                {
    051                    LanServer var8 = (LanServer)var7.next();
    052
    053                    if (var8.getServerIpPort().equals(var4))
    054                    {
    055                        var8.updateLastSeen();
    056                        var6 = true;
    057                        break;
    058                    }
    059                }
    060
    061                if (!var6)
    062                {
    063                    this.listOfLanServers.add(new LanServer(var3, var4));
    064                    this.wasUpdated = true;
    065                }
    066            }
    067        }
    068    }