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); }
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); } } } }