Example #1
0
    void CollectPlayersRuntimeData()
    {
        HashSet <string> nameHash = new HashSet <string>();

        foreach (var c in collectedPlayerData)
        {
            if (!string.IsNullOrEmpty(c.id))
            {
                nameHash.Add(c.id);
            }
        }

        collectedPlayerData.Clear();
        foreach (var a in L4D2QueryAgentManager.Instance.agents)
        {
            var serverName = a.serverInfo.serverName;
            foreach (var p in a.playersInfo.playerInfos)
            {
                var d = new PlayerIDRunningData(p.name.Replace("\0", ""), serverName, p.duration);
                collectedPlayerData.Add(d);
                if (!nameHash.Contains(d.id) && !string.IsNullOrEmpty(d.id) && d.gamingTime < 90f)//Need to check play time to determine login action
                {
                    OnPlayerLoginAction?.Invoke(d);
                }
            }
        }
    }
    void SendEMailToSubScriber(PlayerIDRunningData data, NotifySubscriberBody subscriber)
    {
        string subject = subscriber.notifySubjectTemplate.Replace("[INTEREST]", data.id);
        string body    = subscriber.notifyBodyTemplate.Replace("[NAME]", subscriber.subscriberName);

        body = body.Replace("[INTEREST]", data.id);
        body = body.Replace("[SERVER]", data.serverName.Replace("\0", ""));
        SendQQMail(subscriber.subscriberMail, subject, body);
    }
Example #3
0
 void UpdateUI()
 {
     if (bindDecorator != null)
     {
         idDisplayField.text = bindDecorator.id;
         PlayerIDRunningData playerData = PlayerIDManager.Instance.collectedPlayerData.Find(p => p.id == bindDecorator.id);
         if (playerData == null)
         {
             statusDisplayText.text = "尚未查找到该id当前游戏信息";
         }
         else
         {
             statusDisplayText.text = "所在服务器:" + playerData.serverName.Replace("\0", "") + "  游戏时间:" + new PlayerInfoItem.TimePeriod(Mathf.FloorToInt(playerData.gamingTime)).ToString();
         }
     }
 }
 void OnNewPlayerLogin(PlayerIDRunningData data)
 {
     Debug.Log(data.id + " login!");
     if (notifySubscriberSettings == null)
     {
         return;
     }
     foreach (var s in notifySubscriberSettings.subscribers)
     {
         foreach (var a in s.accountOfInterest)
         {
             if (a == data.id)
             {
                 SendEMailToSubScriber(data, s);
             }
         }
     }
 }