private void OnServerGenerated(ISteamGameServer obj) { if (LiveAction != null) { LiveAction(this, new IPEndPoint(obj.Host, obj.QueryPort).ToString()); } }
private void AssignProperties(ServerItem item, ISteamGameServer vo) { var keyWordsSplited = vo.Keywords.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray(); var keyWords = new Dictionary <string, string>(keyWordsSplited.Length); foreach (var s in keyWordsSplited) { var k = s.Substring(0, 1); if (!keyWords.ContainsKey(k)) { keyWords.Add(k, s.Substring(1)); } } //serverItem1.Country = dataItem1.Country; item.Gamename = vo.Gamename; item.Host = vo.Host; item.Island = vo.Map; item.Mission = vo.Mission; item.Mode = keyWords.FirstOrDefault(k => k.Key == "t").Value ?? string.Empty; //dataItem1.Mode; item.Modhashs = vo.Modhashs; item.ModsText = vo.Mods; item.Name = vo.Name; item.CurrentPlayerCount = vo.CurrentPlayerCount; item.MaxPlayers = vo.MaxPlayers; item.Port = vo.Port; item.QueryPort = vo.QueryPort; item.Signatures = vo.Signatures; item.VerifySignatures = vo.VerifySignatures; item.Version = vo.Version; item.Passworded = keyWords.FirstOrDefault(k => k.Key == "l").Value == "t"; //dataItem1.Passworded; item.Ping = vo.Ping; if (vo.Players != null) { item.CurrentPlayersText = string.Join(", ", vo.Players.Select(p => p.Name).OrderBy(s => s)); item.CurrentPlayers = vo.Players.OrderBy(p => p.Name).ToArray(); } }
private void UpdateServerInfo(IServerItem[] serverItems) { foreach (ServerItem serverItem in serverItems) { if (serverItem == null) { return; } if (serverItem.Host == null) { return; } if (serverItem.QueryPort == 0) { return; } ISteamGameServer dataItem = null; try { dataItem = _defaultServerRepository.GetServerInfo(new IPEndPoint(serverItem.Host, serverItem.QueryPort)); } catch (Exception ex) { Debug.WriteLine(ex); } if (dataItem == null) { continue; } UiTask.Run(AssignProperties, serverItem, dataItem).Wait(); } }