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 }