// Token: 0x0600295C RID: 10588 RVA: 0x00097C38 File Offset: 0x00095E38 public void Init(ref global::ServerBrowser.Server s) { this.server = s; this.textLabel.Text = this.server.name; this.textPlayers.Text = this.server.currentplayers.ToString() + " / " + this.server.maxplayers.ToString(); this.textPing.Text = this.server.ping.ToString(); global::dfScrollPanel component = base.transform.parent.GetComponent <global::dfScrollPanel>(); if (component) { base.GetComponent <global::dfControl>().Width = component.Width; base.GetComponent <global::dfControl>().ResetLayout(true, false); } this.UpdateColours(); }
// Token: 0x06002938 RID: 10552 RVA: 0x0009713C File Offset: 0x0009533C private void Add_Server(int iMaxPlayers, int iCurrentPlayers, int iPing, uint iLastPlayed, [MarshalAs(UnmanagedType.LPStr)][In] string strHostname, [MarshalAs(UnmanagedType.LPStr)][In] string strAddress, int iPort, int iQueryPort, [MarshalAs(UnmanagedType.LPStr)][In] string tags, bool bPassworded, int iType) { string strName = strAddress + ":" + iPort.ToString(); global::ServerBrowser.Server server = new global::ServerBrowser.Server(); server.name = strHostname; server.address = strAddress; server.maxplayers = iMaxPlayers; server.currentplayers = iCurrentPlayers; server.ping = iPing; server.lastplayed = iLastPlayed; server.port = iPort; server.queryport = iQueryPort; server.fave = global::FavouriteList.Contains(strName); if (server.name.Length > 64) { server.name = server.name.Substring(0, 64); } if (this.ShouldIgnoreServer(server)) { return; } this.playerCount += iCurrentPlayers; this.serverCount++; this.slotCount += iMaxPlayers; this.needsServerListUpdate = true; int num = (int)((float)this.playerCount / (float)this.slotCount * 100f); this.detailsLabel.Text = string.Concat(new string[] { "Found ", this.playerCount.ToString(), " players on ", this.serverCount.ToString(), " servers. We are at ", num.ToString(), "% capacity." }); if (iType == 3) { this.servers[5].Add(server); this.categoryButtons[5].UpdateServerCount(this.servers[5].Count); return; } if (iType == 4) { int num2 = (int)POSIX.Time.ElapsedSecondsSince((int)server.lastplayed); string str = string.Empty; if (num2 < 60) { str = num2.ToString() + " seconds ago"; } else if (num2 < 3600) { str = (num2 / 60).ToString() + " minutes ago"; } else if (num2 < 172800) { str = (num2 / 60 / 60).ToString() + " hours ago"; } else { str = (num2 / 60 / 60 / 24).ToString() + " days ago"; } global::ServerBrowser.Server server2 = server; server2.name = server2.name + " (" + str + ")"; this.servers[4].Add(server); this.categoryButtons[4].UpdateServerCount(this.servers[4].Count); return; } if (tags.Contains("official")) { this.servers[0].Add(server); this.categoryButtons[0].UpdateServerCount(this.servers[0].Count); return; } string[] array = tags.Split(new char[] { ',' }); foreach (string text in array) { if (!text.StartsWith("mp")) { if (!text.StartsWith("cp")) { if (text.StartsWith("sg:")) { string s = text.Substring(3); ulong iGroupID; if (ulong.TryParse(s, NumberStyles.HexNumber, null, out iGroupID)) { if (!Rust.Steam.SteamGroups.MemberOf(iGroupID)) { return; } this.servers[3].Add(server); this.categoryButtons[3].UpdateServerCount(this.servers[3].Count); return; } } } } } if (tags.Contains("modded")) { this.servers[2].Add(server); this.categoryButtons[2].UpdateServerCount(this.servers[2].Count); return; } if (strHostname.Contains("oxide", true)) { return; } if (strHostname.Contains("rust++", true)) { return; } this.servers[1].Add(server); this.categoryButtons[1].UpdateServerCount(this.servers[1].Count); }
// Token: 0x0600293A RID: 10554 RVA: 0x00097558 File Offset: 0x00095758 public void UpdateServerList() { this.needsServerListUpdate = false; int num = this.GetMaxServers(); num = Math.Min(this.servers[this.serverType].Count, num); int num2 = this.pageNumber * num; if (this.servers[this.serverType].Count == 0) { return; } if (num2 < 0) { return; } if (num2 > this.servers[this.serverType].Count) { return; } int iPages = (int)Mathf.Ceil((float)this.servers[this.serverType].Count / (float)num); if (this.serverType == 4) { this.servers[this.serverType].Sort((global::ServerBrowser.Server x, global::ServerBrowser.Server y) => (x.lastplayed == y.lastplayed) ? string.Compare(x.name, y.name) : y.lastplayed.CompareTo(x.lastplayed)); } else { if (this.orderType == 0) { this.servers[this.serverType].Sort((global::ServerBrowser.Server x, global::ServerBrowser.Server y) => (x.fave == y.fave) ? string.Compare(x.name, y.name) : y.fave.CompareTo(x.fave)); } if (this.orderType == 1) { this.servers[this.serverType].Sort((global::ServerBrowser.Server x, global::ServerBrowser.Server y) => (x.fave == y.fave) ? ((x.currentplayers == y.currentplayers) ? string.Compare(x.name, y.name) : y.currentplayers.CompareTo(x.currentplayers)) : y.fave.CompareTo(x.fave)); } if (this.orderType == 2) { this.servers[this.serverType].Sort((global::ServerBrowser.Server x, global::ServerBrowser.Server y) => (x.fave == y.fave) ? ((x.ping == y.ping) ? string.Compare(x.name, y.name) : x.ping.CompareTo(y.ping)) : y.fave.CompareTo(x.fave)); } } if (num2 + num > this.servers[this.serverType].Count) { num = this.servers[this.serverType].Count - num2; } List <global::ServerBrowser.Server> range = this.servers[this.serverType].GetRange(num2, num); this.pagination.Setup(iPages, this.pageNumber); string text = string.Empty; foreach (global::ServerBrowser.Server server in range) { text += server.address; } if (text == this.currentServerChecksum) { return; } this.ClearServers(); Vector3 position; position..ctor(0f, 0f, 0f); this.currentServerChecksum = text; bool flag = false; foreach (global::ServerBrowser.Server server2 in range) { global::ServerBrowser.Server server3 = server2; if (flag && !server2.fave) { position.y -= 2f; } flag = server2.fave; GameObject gameObject = this.NewServerItem(); gameObject.GetComponent <global::ServerItem>().Init(ref server3); global::dfControl component = gameObject.GetComponent <global::dfControl>(); component.Width = this.serverContainer.Width; component.Position = position; component.Show(); position.y -= 34f; } this.serverContainer.Invalidate(); }
// Token: 0x06002937 RID: 10551 RVA: 0x00096F50 File Offset: 0x00095150 private bool ShouldIgnoreServer(global::ServerBrowser.Server item) { string text = item.name.ToLower(); if (text.Contains("[color")) { return(true); } if (text.Contains("[sprite")) { return(true); } if (text.Contains("--")) { return(true); } if (text.Contains("%%")) { return(true); } if (!char.IsLetterOrDigit(text[0])) { return(true); } if (!char.IsLetterOrDigit(text[text.Length - 1])) { return(true); } foreach (char c in text) { if (!char.IsLetterOrDigit(c)) { if (c != '\'') { if (c != '[') { if (c != ']') { if (c != '|') { if (c != ' ') { if (c != '-') { if (c != '(') { if (c != '%') { if (c != ')') { if (c != '_') { if (c != '@') { if (c != '+') { if (c != '&') { if (c != ':') { if (c != '/') { if (c != '.') { if (c != '?') { if (c != '#') { if (c != '!') { if (c != ',') { return(true); } } } } } } } } } } } } } } } } } } } } } } return(item.currentplayers > item.maxplayers || item.currentplayers > 500); }