public ListServerData FindServerWithMostPlayers() { ListServerData s = null; foreach (var p in ServerList) { if (s == null || p.Info.TotalPlayers > s.Info.TotalPlayers) { s = p; } } return(s); }
private void Client_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) { LastError = string.Empty; LastToken = string.Empty; if (e.Error != null) { LastError = e.Error.ToString(); if (RequestErrored != null) { RequestErrored.Invoke(this, EventArgs.Empty); } return; } ServerList.Clear(); try { foreach (string line in e.Result.Split("\r\n".ToCharArray())) { if (line == string.Empty) { continue; } string[] cmdParts = line.Split(":".ToCharArray(), 2); string command = cmdParts[0]; if (command == "TOKEN") { LastToken = cmdParts[1].Trim(); } else if (command == "NOTOK") { LastError = "No Token " + cmdParts[1].Trim(); } else if (command == "ERROR") { LastError = "ERROR " + cmdParts[1].Trim(); } else if (command == "NOTICE") { LastError = "NOTICE " + cmdParts[1].Trim(); } else { ListServerData data = new ListServerData(); string[] dataParts = line.Split(" ".ToCharArray(), 5); data.Name = dataParts[0]; data.Version = dataParts[1]; data.Info.ReadFromString(dataParts[2]); IPAddress.TryParse(dataParts[3], out data.Address); data.Host = dataParts[3]; data.Port = 5154; if (dataParts[0].Contains(":")) { string[] portParts = dataParts[0].Split(":".ToCharArray(), 2); data.Host = portParts[0]; int.TryParse(portParts[1], out data.Port); } if (dataParts.Length > 4) { data.Description = dataParts[4]; } ServerList.Add(data); } } } catch (System.Exception ex) { //LastToken = string.Empty; LastError = ex.ToString(); } if (LastError != string.Empty) { if (RequestErrored != null) { RequestErrored.Invoke(this, EventArgs.Empty); } } else { if (RequestCompleted != null) { RequestCompleted.Invoke(this, EventArgs.Empty); } } }