Esempio n. 1
0
 private void OnServerGenerated(ISteamGameServer obj)
 {
     if (LiveAction != null)
     {
         LiveAction(this, new IPEndPoint(obj.Host, obj.QueryPort).ToString());
     }
 }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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();
            }
        }