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    }