示例#1
0
 public ConfirmationEntry(string speaker, string message, MatchCommand mtcCommand, CapturedCommand capCommand, CPlayerSubset subset) {
     this.Speaker = speaker;
     this.Message = message;
     this.MatchedCommand = mtcCommand;
     this.ConfirmationDetails = capCommand;
     this.MessageScope = subset;
 }
        public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
        {
            foreach (var player in players)
            {
                var soldierName = player.SoldierName;
                if (ignoreReservedPlayers && reservedPlayers != null && reservedPlayers.Contains(soldierName))
                {
                    continue;
                }

                int rank = player.Rank;
                if (rank == 0)
                {
                    rank = _GetGameTrackerBC2Stats(soldierName);
                    if (rank == 0)
                    {
                        rank = _GetBFBCStatRank(soldierName);
                        if (rank == 0)
                        {
                            continue;
                        }
                    }
                }

                if (rank > rankLimit)
                {
                    ExecuteCommand("procon.protected.send", "admin.kickPlayer", soldierName, "You got kicked due to your Player Rank (" + rank + ") being too high!");
                    ExecuteCommand("procon.protected.send", "admin.say", "Kicked '" + soldierName + "' because their Player Rank (" + rank + ") is too high!");
                }
            }
        }
示例#3
0
 public override void OnListPlayers(List <CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset)
 {
     if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All)
     {
         this.m_iCurrentPlayerCount = lstPlayers.Count;
         if (this.m_blRoundRunning)
         {
             this.m_ASquadCount[1][0]    = 0;
             this.m_ASquadCount[1][1]    = 0;
             this.m_ASquadCount[1][2]    = 0;
             this.m_ASquadCount[1][3]    = 0;
             this.m_ASquadCount[1][4]    = 0;
             this.m_ASquadCount[1][5]    = 0;
             this.m_ASquadCount[1][6]    = 0;
             this.m_ASquadCount[1][7]    = 0;
             this.m_ASquadCount[1][8]    = 0;
             this.m_ASquadCount[2][0]    = 0;
             this.m_ASquadCount[2][1]    = 0;
             this.m_ASquadCount[2][2]    = 0;
             this.m_ASquadCount[2][3]    = 0;
             this.m_ASquadCount[2][4]    = 0;
             this.m_ASquadCount[2][5]    = 0;
             this.m_ASquadCount[2][6]    = 0;
             this.m_ASquadCount[2][7]    = 0;
             this.m_ASquadCount[2][8]    = 0;
             this.m_ASquadCount[3][0]    = 0;
             this.m_ASquadCount[3][1]    = 0;
             this.m_ASquadCount[3][2]    = 0;
             this.m_ASquadCount[3][3]    = 0;
             this.m_ASquadCount[3][4]    = 0;
             this.m_ASquadCount[3][5]    = 0;
             this.m_ASquadCount[3][6]    = 0;
             this.m_ASquadCount[3][7]    = 0;
             this.m_ASquadCount[3][8]    = 0;
             this.m_ASquadCount[4][0]    = 0;
             this.m_ASquadCount[4][1]    = 0;
             this.m_ASquadCount[4][2]    = 0;
             this.m_ASquadCount[4][3]    = 0;
             this.m_ASquadCount[4][4]    = 0;
             this.m_ASquadCount[4][5]    = 0;
             this.m_ASquadCount[4][6]    = 0;
             this.m_ASquadCount[4][7]    = 0;
             this.m_ASquadCount[4][8]    = 0;
             this.m_ATeamCount           = new int[5];
             this.m_APlayersToSquadCount = new int[5];
             foreach (CPlayerInfo cpiPlayer in lstPlayers)
             {
                 this.m_ATeamCount[cpiPlayer.TeamID]++;
                 this.m_ASquadCount[cpiPlayer.TeamID][cpiPlayer.SquadID]++;
                 this.m_DPlayers[cpiPlayer.SoldierName] = new int[] { cpiPlayer.TeamID, cpiPlayer.SquadID };
                 if (!this.m_LPlayersToSquad.Contains(cpiPlayer.SoldierName) && !this.m_LPlayersToIgnore.Contains(cpiPlayer.SoldierName) && cpiPlayer.SquadID == 0 && this.m_enMoveOnlyNew == enumBoolYesNo.No)
                 {
                     this.m_LPlayersToSquad.Add(cpiPlayer.SoldierName);
                     this.m_APlayersToSquadCount[cpiPlayer.TeamID]++;
                     WritePluginConsole("TASK -> Need to squad " + cpiPlayer.SoldierName + ".");
                 }
             }
         }
     }
 }
示例#4
0
 public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
 {
     if (bf4db_IsValid == true)
     {
         if (!lastPlayerCheck())
         {
             return;
         }
         else
         {
             this.bf4db_lastPlayerUpdate = DateTime.UtcNow;
         }
         DebugWrite("Getting Player List", 1);
         foreach (CPlayerInfo player in players)
         {
             CPlayerInfo currentPlayer = player;
             lock (currentPlayer)
             {
                 ThreadPool.QueueUserWorkItem(new WaitCallback(delegate(object state)
                 {
                     threadPlayer(currentPlayer);
                 }), null);
             }
         }
     }
     else
     {
         ConsoleError("API Key is invalid! Please fix it and toggle plugin.");
     }
 }
示例#5
0
        public override void OnListPlayers(List <CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset)
        {
            if ((lstPlayers != null))
            {
                foreach (CPlayerInfo playerInfo in lstPlayers)
                {
                    if (this.lsPlayerInfo.Contains(playerInfo.SoldierName) == false)
                    {
                        this.lsPlayerInfo.Add(playerInfo.SoldierName);
                    }

                    //EDIT EBASSIE
                    if ((this.enableNoPingKick == enumBoolYesNo.Yes) && !this.strGameMode.Equals("BF3") && ((playerInfo.Ping <= 0) || (playerInfo.Ping > 10000)) && (!this.lsWhitelist.Contains(playerInfo.SoldierName)))
                    //if ((this.enableNoPingKick == enumBoolYesNo.Yes) && !this.strGameMode.Equals("BF3") && ((playerInfo.Ping <= 0) || (playerInfo.Ping > 10000)))
                    {
                        if (this.dicMissingPings.ContainsKey(playerInfo.SoldierName))
                        {
                            int missCounts = this.dicMissingPings[playerInfo.SoldierName];
                            if (missCounts >= 3)
                            {
                                Kick(playerInfo.SoldierName, "Missing ping", "", "");
                                this.dicMissingPings.Remove(playerInfo.SoldierName);
                            }
                            else
                            {
                                this.dicMissingPings[playerInfo.SoldierName] = missCounts + 1;
                            }
                        }
                        else
                        {
                            this.dicMissingPings.Add(playerInfo.SoldierName, 1);
                        }
                    }
                    if (!this.strGameMode.Equals("BF3"))
                    {
                        this.ExecuteCommand("procon.protected.tasks.add", playerInfo.SoldierName + "PingTask", "5", "1", "1", "procon.protected.plugins.call", "CLatencyManager", "PingAdd", playerInfo.SoldierName, playerInfo.Ping.ToString());
                    }
                }
                List <string> orphanPlayers = new List <string>();
                foreach (CPlayerInfo cpiPlayer in lstPlayers)
                {
                    orphanPlayers.Add(cpiPlayer.SoldierName);  //Convert lstPlayers into a list of strings cause i'm lazy
                }
                List <string> orphans = lsPlayerInfo.Except(orphanPlayers).ToList();
                foreach (String player in orphans)
                {
                    lsPlayerInfo.Remove(player);
                }
            }
            // this.ExecuteCommand("procon.protected.tasks.remove", "PingCheckerTask");

            if (lstPlayers.Count == 0)
            {
                this.lsPlayerInfo.Clear();
                this.dicPlayerPings.Clear();
                this.dicPingCalled.Clear();
                this.lsCheckedPlayers.Clear();
            }
        }
示例#6
0
 public ChatMessage(DateTime loggedTime, string speaker, string message, bool isFromServer, bool isYelling, CPlayerSubset subset) {
     this.LoggedTime = loggedTime;
     this.Speaker = speaker;
     this.Message = message;
     this.IsFromServer = isFromServer;
     this.IsYelling = isYelling;
     this.Subset = subset;
 }
示例#7
0
 public ConfirmationEntry(string speaker, string message, MatchCommand mtcCommand, CapturedCommand capCommand, CPlayerSubset subset)
 {
     this.Speaker             = speaker;
     this.Message             = message;
     this.MatchedCommand      = mtcCommand;
     this.ConfirmationDetails = capCommand;
     this.MessageScope        = subset;
 }
示例#8
0
 /// <summary>
 /// this event trigger after "admin.listPlayers all"
 /// </summary>
 /// <param name="players"></param>
 /// <param name="subset"></param>
 public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
 {
     if (!isEnable)
     {
         return;
     }
     base.OnListPlayers(players, subset);
     hasListPlayers = true;
 }
示例#9
0
 public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
 {
     base.OnListPlayers(players, subset);
     if (!isEnable)
     {
         return;
     }
     // Add some code.
 }
示例#10
0
 public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
 {
     toConsole(3, "OnListPlayers");
     foreach (CPlayerInfo player in players)
     {
         toConsole(3, "Printing names");
         toConsole(3, player.SoldierName);
     }
 }
示例#11
0
 public ChatMessage(DateTime loggedTime, string speaker, string message, bool isFromServer, bool isYelling, CPlayerSubset subset)
 {
     this.LoggedTime   = loggedTime;
     this.Speaker      = speaker;
     this.Message      = message;
     this.IsFromServer = isFromServer;
     this.IsYelling    = isYelling;
     this.Subset       = subset;
 }
示例#12
0
 public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
 {
     foreach (var player in players)
     {
         if (!ELOList.ContainsKey(player.SoldierName))
         {
             ELOList[player.SoldierName] = new ELO(player.SoldierName);
         }
     }
 }
示例#13
0
        public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
        {
            //ConsoleWrite("OnListPlayers: " + players.Count + " (WARMUP MODE <= " + this.warmupModeBoundarySetting + " / " + this.fullModeBoundarySetting + " <= FULL MODE)");

            // 現在のプレイヤー数を保持
            playerCount = players.Count;

            // 現在のマップリストをリクエスト
            RequestMaplist();
        }
示例#14
0
        /// <summary>
        /// プレイヤーリスト受信イベント
        /// </summary>
        /// <param name="players"></param>
        /// <param name="subset"></param>
        public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
        {
            // サーバから受信したプレイヤーリストを保存
            this.serverInfo.PlayerInfoList = new List <CPlayerInfo>(players);

            // 完了イベント通知
            this.playerListEventHandle.Set();

            ConsoleWrite("OnListPlayer: PlayerCount = " + this.serverInfo.PlayerInfoList.Count.ToString());
        }
        public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset cpsSubset)
        {
            if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All)
            {
                _playerCount = players.Count;
            }

            if (_autoAction == Action.Punish)
            {
                AutoPunishPastVictimWindow();
            }
        }
示例#16
0
 public virtual void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
 {
     if (subset.Subset == CPlayerSubset.PlayerSubsetType.All)
     {
         List <CPlayerInfo> .Enumerator enumerator = players.GetEnumerator();
         try
         {
             while (enumerator.MoveNext())
             {
                 CPlayerInfo current = enumerator.Current;
                 if (FrostbitePlayerInfoList.ContainsKey(current.SoldierName))
                 {
                     FrostbitePlayerInfoList[current.SoldierName] = current;
                 }
                 else
                 {
                     FrostbitePlayerInfoList.Add(current.SoldierName, current);
                 }
             }
         }
         finally
         {
             ((IDisposable)enumerator).Dispose();
         }
         foreach (string key in FrostbitePlayerInfoList.Keys)
         {
             bool flag = false;
             enumerator = players.GetEnumerator();
             try
             {
                 while (enumerator.MoveNext())
                 {
                     if (string.Compare(enumerator.Current.SoldierName, FrostbitePlayerInfoList[key].SoldierName) == 0)
                     {
                         flag = true;
                         break;
                     }
                 }
             }
             finally
             {
                 ((IDisposable)enumerator).Dispose();
             }
             if (!flag)
             {
                 FrostbitePlayerInfoList.Remove(key);
                 PunkbusterPlayerInfoList.Remove(key);
             }
         }
     }
 }
示例#17
0
 public void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
 {
     if (pluginEnabled > 0)
     {
         //if a player in the newest playerList is not in the all playerlist, add them to all playerlist
         for (int i = 0; i < players.Count; i++)
         {
             if (allPlayersListContains(players[i]) == -1)
             {
                 allPlayers.Add(players[i]);
             }
         }
         try
         {
             //if a player is in the last player list, but not int the newest, they left. find out staytime and add their name to the daystaytable then remove them from the all players
             for (int i = 0; i < this.oldPlayers.Count; i++)
             {
                 if (playersListContain(this.oldPlayers[i], players) == -1)
                 {
                     int index = allPlayersListContains(this.oldPlayers[i]);
                     if (index != -1)
                     {
                         if (allPlayers[index].end() >= 30 && this.SqlConnected)
                         {
                             query = new MySqlCommand("INSERT INTO " + dayStayTableName + " ( 'player', 'staytime' ) VALUES ( 'SAM', " + allPlayers[index].end().TotalSeconds + " )", this.confirmedConnection);
                             if (testQueryCon(query))
                             {
                                 try { query.ExecuteNonQuery(); }
                                 catch (Exception e)
                                 {
                                     this.toConsole(1, "Couldn't parse query!");
                                     this.toConsole(1, e.ToString());
                                 }
                             }
                         }
                         allPlayers.Remove(index);
                     }
                 }
             }
             //make the most recent playerlist the older playerlist so that next time OnListPlayers is run, it will use the playerlist from the last call of OnListPlayers
             this.oldPlayers = players;
         }//catch if oldPlayers is null
         catch (Exception e)
         {
             this.oldPlayers = players;
         }
     }
 }
        public override void OnListPlayers(List <CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset)
        {
            // If player count is equal to lower threshold, start seeding period
            if (ServerData.PlayerCount == this.LowerPopThreshold)
            {
                Seeders.Clear();
                this.SeederPeriodStart = DateTime.Now.ToString("yyyyMMdd HH:mm:ss");
                CreateSeederList(lstPlayers);
            }

            // If player count reaches upper threshold, log the seeders to file and end current seeding period
            if (Seeders.Count > 0 && this.SeederPeriodStart != null && ServerData.PlayerCount >= this.UpperPopThreshold)
            {
                LogToFile();
            }
        }
示例#19
0
        public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset cpsSubset)
        {
            if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All)
            {
                lock (this.dicPlayerInfo)
                {
                    this.dicPlayerInfo.Clear();

                    foreach (CPlayerInfo player in players)
                    {
                        this.dicPlayerInfo.Add(player.SoldierName, player);
                    }
                }
            }

            this.RegisterAllCommands();
        }
示例#20
0
 public override void OnListPlayers(List <CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset)
 {
     if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All)
     {
         foreach (CPlayerInfo cpiPlayer in lstPlayers)
         {
             if (this.m_dicPlayerInfo.ContainsKey(cpiPlayer.SoldierName) == true)
             {
                 this.m_dicPlayerInfo[cpiPlayer.SoldierName] = cpiPlayer;
             }
             else
             {
                 this.m_dicPlayerInfo.Add(cpiPlayer.SoldierName, cpiPlayer);
             }
         }
     }
 }
示例#21
0
 public virtual void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
 {
     if (subset.Subset == CPlayerSubset.PlayerSubsetType.All)
     {
         foreach (CPlayerInfo player in players)
         {
             if (this.FrostbitePlayerInfoList.ContainsKey(player.SoldierName) == true)
             {
                 this.FrostbitePlayerInfoList[player.SoldierName] = player;
             }
             else
             {
                 this.FrostbitePlayerInfoList.Add(player.SoldierName, player);
             }
         }
     }
 }
        public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
        {
            if (reservedPlayers == null)
            {
                return;
            }

            foreach (var player in players)
            {
                var soldierName = player.SoldierName;

                if (!reservedPlayers.Contains(soldierName))
                {
                    _KickPlayer(soldierName);
                }
            }
        }
示例#23
0
        public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
        {
            if (serverStarterList != null)
            {
                //ConsoleWrite("ServerStarter : " + String.Join(", ", serverStarterList.ToArray()));

                if (players.Count == 0)
                {
                    // サーバ人数0
                    serverStarterList = null;
                }
            }
            else
            {
                //ConsoleWrite("ServerStarter is null. player count :" + players.Count + " / serverRoundTime : " + serverRoundTime);

                if (serverRoundTime <= 300) // ラウンド時間5分以内の場合に記録
                {
                    if (players.Count > 8)
                    {
                        // 8人を超える場合は、情報なしとして空のリスト
                        serverStarterList = new List <string>();
                    }
                    else if (players.Count >= 4) // プレイヤー数4〜8人
                    {
                        // サーバスターティングメンバーリスト
                        serverStarterList = new List <string>(players.Count);

                        // メンバーをソート
                        players.Sort((p1, p2) =>
                        {
                            // 接続時間が長い順にする
                            return(p2.SessionTime - p1.SessionTime);
                        });

                        // サーバスターティングメンバーを保持
                        players.ForEach((p) =>
                        {
                            // リストに追加
                            serverStarterList.Add(p.SoldierName);
                        });
                    }
                }
            }
        }
示例#24
0
        public override void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
        {
            if (this.pluginEnabled)
            {
                this.listPlayersTimer.Stop();
                this.listPlayersTimer          = new Timer();
                this.listPlayersTimer.Elapsed += new ElapsedEventHandler(this.callListPlayers);
                this.listPlayersTimer.Interval = 5000;
                this.listPlayersTimer.Start();

                List <String> newOnlineList        = new List <String>();
                List <String> tempAdminsOnlineList = new List <String>();
                toConsole(2, "Player list obtained.");
                foreach (CPlayerInfo player in players)
                {
                    if (donatorList.Contains(player.SoldierName.Trim().ToLower()))
                    {
                        newOnlineList.Add(player.SoldierName.Trim());
                    }
                    if (adminList.Contains(player.SoldierName.Trim().ToLower()))
                    {
                        tempAdminsOnlineList.Add(player.SoldierName.Trim());
                    }
                }
                this.onlineList       = newOnlineList;
                this.adminsOnlineList = tempAdminsOnlineList;
                toConsole(2, "Donators/Volunteers found online: ");
                if (debugLevel > 1)
                {
                    foreach (string name in onlineList)
                    {
                        toConsole(2, name);
                    }
                }
                toConsole(2, "Admins found online: ");
                if (debugLevel > 1)
                {
                    foreach (string name in adminsOnlineList)
                    {
                        toConsole(2, name);
                    }
                }
            }
        }
示例#25
0
        public override void OnListPlayers(List<CPlayerInfo> players, CPlayerSubset subset)
        {
            base.OnListPlayers(players, subset);
            if (isEnable)
            {
                historyCount.Add(FrostbitePlayerInfoList.Count);
                if (historyCount.Count >= Math.Max(1, SampleCount))
                {
                    if (historyCount.Count(_ => _ >= Threshold) >= historyCount.Count)
                    {

                        Command("vars.idleTimeout", DefaultTimeout.ToString());
                    }
                    else
                    {
                        Command("vars.idleTimeout", "86400");
                    }
                    historyCount.Clear();
                }
            }
        }
示例#26
0
        public virtual void OnListPlayers(List <CPlayerInfo> players, CPlayerSubset subset)
        {
            if (subset.Subset == CPlayerSubset.PlayerSubsetType.All)
            {
                foreach (CPlayerInfo player in players)
                {
                    if (this.FrostbitePlayerInfoList.ContainsKey(player.SoldierName) == true)
                    {
                        this.FrostbitePlayerInfoList[player.SoldierName] = player;
                    }
                    else
                    {
                        this.FrostbitePlayerInfoList.Add(player.SoldierName, player);
                    }
                }

                foreach (var fpi_player in this.FrostbitePlayerInfoList.Keys)
                {
                    bool blFoundPlayer = false;

                    foreach (CPlayerInfo iPlayer in players)
                    {
                        if (String.Compare(iPlayer.SoldierName, this.FrostbitePlayerInfoList[fpi_player].SoldierName) == 0)
                        {
                            blFoundPlayer = true;
                            break;
                        }
                    }

                    if (blFoundPlayer == false)
                    {
                        this.FrostbitePlayerInfoList.Remove(fpi_player);
                        this.PunkbusterPlayerInfoList.Remove(fpi_player);
                    }
                }
            }
        }
示例#27
0
        private void m_prcClient_ProconAdminYelling(PRoConClient sender, string strAdminStack, string strMessage, int iMessageDuration, CPlayerSubset spsAudience)
        {
            string strAdminName = this.m_prcClient.Language.GetLocalized("uscChatPanel.rtbChatBox.Admin", null);
            string formattedMessage = String.Empty;

            if (strAdminStack.Length > 0) {
                strAdminName = String.Join(" via ", CPluginVariable.DecodeStringArray(strAdminStack));
            }

            if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.All) {
                formattedMessage = String.Format("^b^2{0}^0 > ^2{1}", strAdminName.ToUpper(), strMessage.ToUpper());
            }
            else if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.Player) {
                formattedMessage = String.Format("^b^2{0}^0 -^2 {1}^0 > ^2{2}", strAdminName.ToUpper(), spsAudience.SoldierName.ToUpper(), strMessage.ToUpper());
            }
            else if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.Team) {
                formattedMessage = String.Format("^b^2{0}^0 -^2 {1}^0 >^2 {2}", strAdminName.ToUpper(), this.m_prcClient.GetLocalizedTeamName(spsAudience.TeamID, this.m_prcClient.CurrentServerInfo.Map).ToUpper(), strMessage.ToUpper());
            }
            else if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.Squad) {
                formattedMessage = String.Format("^b^2{0}^0 -^2 {1}^0 - ^2{2}^0 >^2 {3}", strAdminName.ToUpper(), this.m_prcClient.GetLocalizedTeamName(spsAudience.TeamID, this.m_prcClient.CurrentServerInfo.Map).ToUpper(), this.m_prcClient.Language.GetLocalized("global.Squad" + spsAudience.SquadID.ToString(), null), strMessage).ToUpper();
            }

            if (formattedMessage.Length > 0) {
                //this.EnqueueMessage(new ChatMessage(DateTime.Now, strAdminName, strMessage, true, true, spsAudience));
                //this.Write(DateTime.Now, formattedMessage);
                this.EnqueueMessage(new ChatMessage(DateTime.UtcNow.ToUniversalTime().AddHours(m_prcClient.Game.UTCoffset).ToLocalTime(), strAdminName, strMessage, true, true, spsAudience));
                this.Write(DateTime.UtcNow.ToUniversalTime().AddHours(m_prcClient.Game.UTCoffset).ToLocalTime(), formattedMessage);
            }
        }
示例#28
0
 public virtual void SendAdminListPlayersPacket(CPlayerSubset subset) {
     if (IsLoggedIn == true) {
         if (subset.Subset == CPlayerSubset.PlayerSubsetType.All) {
             BuildSendPacket("admin.listPlayers", "all");
         }
         else if (subset.Subset == CPlayerSubset.PlayerSubsetType.Player) {
             BuildSendPacket("admin.listPlayers", "player", subset.SoldierName);
         }
         else if (subset.Subset == CPlayerSubset.PlayerSubsetType.Team) {
             BuildSendPacket("admin.listPlayers", "team", subset.TeamID.ToString(CultureInfo.InvariantCulture));
         }
         else if (subset.Subset == CPlayerSubset.PlayerSubsetType.Squad) {
             BuildSendPacket("admin.listPlayers", "squad", subset.TeamID.ToString(CultureInfo.InvariantCulture), subset.SquadID.ToString(CultureInfo.InvariantCulture));
         }
     }
 }
示例#29
0
 /// <summary>
 /// Fires when any registered command has been matched against a players text in game.
 /// This method is called regardless of it being registered to your classname.
 /// Called *after* a confirmation.  If this method is called you can assume the 
 /// speaker has met the required privliege and has confirmed the command as correct.
 /// </summary>
 /// <param name="speaker">The player that issued the command</param>
 /// <param name="text">The text that was matched to the MatchCommand object</param>
 /// <param name="matchedCommand">The registered command object</param>
 /// <param name="capturedCommand">The captured command details</param>
 /// <param name="matchedScope">The scope the message was sent by the player (squad chat, team chat etc)</param>
 /// Note: This method was not included, instead you delegate a method when creating a MatchCommand object.
 public virtual void OnAnyMatchRegisteredCommand(string speaker, string text, MatchCommand matchedCommand, CapturedCommand capturedCommand, CPlayerSubset matchedScope) { }
示例#30
0
 private void m_prcClient_ListPlayers(FrostbiteClient sender, List<CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset) {
     InvokeOnAllEnabled("OnListPlayers", lstPlayers, cpsSubset);
 }
示例#31
0
 public void OnSaying(string strMessage, CPlayerSubset cpsSubset)
 {
 }
示例#32
0
 private void m_prcClient_ListPlayers(FrostbiteClient sender, List<PRoCon.Core.Players.CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset) {
     this.InvokeOnAllEnabled("OnListPlayers", lstPlayers, cpsSubset);
 }
示例#33
0
        private void m_prcClient_ProconAdminSaying(PRoConClient sender, string strAdminStack, string strMessage, CPlayerSubset spsAudience)
        {
            string strAdminName     = Client.Language.GetLocalized("uscChatPanel.rtbChatBox.Admin", null);
            string formattedMessage = String.Empty;

            if (strAdminStack.Length > 0)
            {
                strAdminName = String.Join(" via ", CPluginVariable.DecodeStringArray(strAdminStack));
            }

            if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.All)
            {
                formattedMessage = String.Format("^b^2{0}^0 > ^2{1}", strAdminName, strMessage);
            }
            else if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.Player)
            {
                formattedMessage = String.Format("^b^2{0}^0 -^2 {1}^0 > ^2{2}", strAdminName, spsAudience.SoldierName, strMessage);
            }
            else if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.Team)
            {
                formattedMessage = String.Format("^b^2{0}^0 -^2 {1}^0 >^2 {2}", strAdminName, Client.GetLocalizedTeamName(spsAudience.TeamID, Client.CurrentServerInfo.Map, Client.CurrentServerInfo.GameMode), strMessage);
            }
            else if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.Squad)
            {
                formattedMessage = String.Format("^b^2{0}^0 -^2 {1}^0 - ^2{2}^0 >^2 {3}", strAdminName, Client.GetLocalizedTeamName(spsAudience.TeamID, Client.CurrentServerInfo.Map, Client.CurrentServerInfo.GameMode), Client.Language.GetLocalized("global.Squad" + spsAudience.SquadID.ToString(CultureInfo.InvariantCulture), null), strMessage);
            }

            if (formattedMessage.Length > 0)
            {
                EnqueueMessage(new ChatMessage(DateTime.UtcNow.ToUniversalTime().AddHours(Client.Game.UtcOffset).ToLocalTime(), strAdminName, strMessage, true, false, spsAudience));
                Write(DateTime.UtcNow.ToUniversalTime().AddHours(Client.Game.UtcOffset).ToLocalTime(), formattedMessage);
            }
        }
示例#34
0
        protected void OnListPlayers(FrostbiteClient sender, List<CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset) {
            if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All) {

                // Add or update players.
                foreach (CPlayerInfo cpiPlayer in lstPlayers) {
                    if (this.PlayerList.Contains(cpiPlayer.SoldierName) == true) {
                        this.PlayerList[this.PlayerList.IndexOf(this.PlayerList[cpiPlayer.SoldierName])] = cpiPlayer;
                    }
                    else {
                        this.PlayerList.Add(cpiPlayer);
                    }
                }

                PlayerDictionary recievedPlayerList = new PlayerDictionary(lstPlayers);
                foreach (CPlayerInfo storedPlayer in new List<CPlayerInfo>(this.PlayerList)) {

                    // If the stored player is not in the list we recieved
                    if (recievedPlayerList.Contains(storedPlayer.SoldierName) == false) {
                        // They have left the server, remove them from the master stored list.
                        this.PlayerList.Remove(storedPlayer.SoldierName);
                    }
                }

            }
        }
示例#35
0
        protected void OnListPlayers(FrostbiteClient sender, List<CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset) {
            if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All) {
                // Add or update players.
                foreach (CPlayerInfo cpiPlayer in lstPlayers) {
                    if (PlayerList.Contains(cpiPlayer.SoldierName) == true) {
                        CPlayerInfo storedPlayer = PlayerList[PlayerList.IndexOf(PlayerList[cpiPlayer.SoldierName])];
                        cpiPlayer.JoinTime = CurrentServerInfo.ServerUptime;
                        if (storedPlayer.JoinTime == 0) { storedPlayer.JoinTime = CurrentServerInfo.ServerUptime; }
                        if (storedPlayer.JoinTime <= CurrentServerInfo.ServerUptime) {
                            cpiPlayer.SessionTime = CurrentServerInfo.ServerUptime - storedPlayer.JoinTime;
                            cpiPlayer.JoinTime = storedPlayer.JoinTime;
                        }
                        
                        PlayerList[PlayerList.IndexOf(PlayerList[cpiPlayer.SoldierName])] = cpiPlayer;
                    }
                    else {
                        cpiPlayer.JoinTime = CurrentServerInfo.ServerUptime;
                        PlayerList.Add(cpiPlayer);
                    }
                }

                var recievedPlayerList = new PlayerDictionary(lstPlayers);
                foreach (CPlayerInfo storedPlayer in new List<CPlayerInfo>(PlayerList)) {
                    // If the stored player is not in the list we recieved
                    if (recievedPlayerList.Contains(storedPlayer.SoldierName) == false) {
                        // They have left the server, remove them from the master stored list.
                        PlayerList.Remove(storedPlayer.SoldierName);
                    }
                }

                if (this.IsPRoConConnection == true && this.PlayTimesSynced == false) {
                    SendRequest(new List<string>() {
                        "procon.player.syncPlayTimes"
                    });
                    this.PlayTimesSynced = true;
                }
            }
        }
示例#36
0
        private void m_prcClient_ListPlayers(FrostbiteClient sender, List<CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset) {
            if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All) {

                lstPlayers.Sort((x, y) => String.Compare(x.SoldierName, y.SoldierName));

                CPlayerInfo objSelected = (CPlayerInfo)this.cboPlayerList.SelectedItem;

                this.cboPlayerList.BeginUpdate();

                //MoHW R-6 can't address individual players
                if (sender.GameType != "MOHW") {
                    // org.
                    for (int i = 0; i < this.cboPlayerList.Items.Count; i++) {
                        CPlayerInfo cpiInfo = (CPlayerInfo)this.cboPlayerList.Items[i];

                        if (cpiInfo.SquadID != -10 && cpiInfo.TeamID != -10) {
                            this.cboPlayerList.Items.RemoveAt(i);
                            i--;
                        }
                    }

                    foreach (CPlayerInfo cpiPlayer in lstPlayers) {
                        if (this.isInComboList(cpiPlayer) == false) {
                            this.cboPlayerList.Items.Add(cpiPlayer);
                        }
                    }

                    this.cboPlayerList.SelectedIndex = 0;
                    for (int i = 0; i < this.cboPlayerList.Items.Count; i++) {
                        CPlayerInfo cpiInfo = (CPlayerInfo)this.cboPlayerList.Items[i];
                        if (String.Compare(cpiInfo.SoldierName, objSelected.SoldierName) == 0) {
                            this.cboPlayerList.SelectedIndex = i;
                            break;
                        }
                    }
                } // end hack

                this.cboPlayerList.EndUpdate();

            }
        }
示例#37
0
        private void m_prcClient_ProconAdminSaying(PRoConClient sender, string strAdminStack, string strMessage, CPlayerSubset spsAudience) {
            string strAdminName = Client.Language.GetLocalized("uscChatPanel.rtbChatBox.Admin", null);
            string formattedMessage = String.Empty;

            if (strAdminStack.Length > 0) {
                strAdminName = String.Join(" via ", CPluginVariable.DecodeStringArray(strAdminStack));
            }

            if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.All) {
                formattedMessage = String.Format("^b^2{0}^0 > ^2{1}", strAdminName, strMessage);
            }
            else if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.Player) {
                formattedMessage = String.Format("^b^2{0}^0 -^2 {1}^0 > ^2{2}", strAdminName, spsAudience.SoldierName, strMessage);
            }
            else if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.Team) {
                formattedMessage = String.Format("^b^2{0}^0 -^2 {1}^0 >^2 {2}", strAdminName, Client.GetLocalizedTeamName(spsAudience.TeamID, Client.CurrentServerInfo.Map, Client.CurrentServerInfo.GameMode), strMessage);
            }
            else if (spsAudience.Subset == CPlayerSubset.PlayerSubsetType.Squad) {
                formattedMessage = String.Format("^b^2{0}^0 -^2 {1}^0 - ^2{2}^0 >^2 {3}", strAdminName, Client.GetLocalizedTeamName(spsAudience.TeamID, Client.CurrentServerInfo.Map, Client.CurrentServerInfo.GameMode), Client.Language.GetLocalized("global.Squad" + spsAudience.SquadID.ToString(CultureInfo.InvariantCulture), null), strMessage);
            }

            if (formattedMessage.Length > 0) {
                EnqueueMessage(new ChatMessage(DateTime.UtcNow.ToUniversalTime().AddHours(Client.Game.UtcOffset).ToLocalTime(), strAdminName, strMessage, true, false, spsAudience));
                Write(DateTime.UtcNow.ToUniversalTime().AddHours(Client.Game.UtcOffset).ToLocalTime(), formattedMessage);
            }
        }
示例#38
0
 public virtual void SendAdminSayPacket(string text, CPlayerSubset subset)
 {
     if (this.IsLoggedIn == true) {
         if (subset.Subset == CPlayerSubset.PlayerSubsetType.All) {
             this.BuildSendPacket("admin.say", text, "all");
         }
         else if (subset.Subset == CPlayerSubset.PlayerSubsetType.Team) {
             this.BuildSendPacket("admin.say", text, "team", subset.TeamID.ToString());
         }
         else if (subset.Subset == CPlayerSubset.PlayerSubsetType.Squad) {
             this.BuildSendPacket("admin.say", text, "squad", subset.TeamID.ToString(), subset.SquadID.ToString());
         }
         else if (subset.Subset == CPlayerSubset.PlayerSubsetType.Player) {
             this.BuildSendPacket("admin.say", text, "player", subset.SoldierName);
         }
     }
 }
示例#39
0
 public void OnCommandPlayerAdmin(string strSpeaker, string strText, MatchCommand mtcCommand, CapturedCommand capCommand, CPlayerSubset subMatchedScope)
 {
     if (this.m_dicPbInfo.ContainsKey(capCommand.MatchedArguments[0].Argument) == true)
     {
         this.ExecuteCommand("procon.protected.send", "textChatModerationList.addPlayer", "admin", this.m_dicPbInfo[capCommand.MatchedArguments[0].Argument].SoldierName);
         this.ExecuteCommand("procon.protected.send", "admin.say", this.m_dicPbInfo[capCommand.MatchedArguments[0].Argument].SoldierName + " now has admin chat privileges.", "player", strSpeaker);
         this.ExecuteCommand("procon.protected.send", "admin.say", "You have been granted admin chat privleges", "player", this.m_dicPbInfo[capCommand.MatchedArguments[0].Argument].SoldierName);
         this.ExecuteCommand("procon.protected.send", "textChatModerationList.save");
     }
     else
     {
         this.ExecuteCommand("procon.protected.send", "admin.say", "Player not found", "player", strSpeaker);
     }
 }
示例#40
0
        private void m_prcClient_ListPlayers(FrostbiteClient sender, List<CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset) {
            if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All) {

                lstPlayers.Sort((x, y) => String.Compare(x.SoldierName, y.SoldierName));

                CPlayerInfo objSelected = (CPlayerInfo)this.cboPlayerList.SelectedItem;

                this.cboPlayerList.BeginUpdate();

                // So much easier with linq..
                foreach (CPlayerInfo cpiPlayer in lstPlayers) {
                    if (this.isInComboList(cpiPlayer) == false) {
                        this.cboPlayerList.Items.Add(cpiPlayer);
                    }
                }

                for (int i = 0; i < this.cboPlayerList.Items.Count; i++) {
                    bool blFound = false;

                    CPlayerInfo cpiInfo = (CPlayerInfo)this.cboPlayerList.Items[i];

                    foreach (CPlayerInfo cpiPlayer in lstPlayers) {
                        if (String.Compare(cpiInfo.SoldierName, cpiPlayer.SoldierName) == 0) {
                            blFound = true;
                            break;
                        }
                    }

                    if (blFound == false && cpiInfo.SquadID != -10 && cpiInfo.TeamID != -10) {
                        this.cboPlayerList.Items.RemoveAt(i);
                        i--;
                    }
                }

                this.cboPlayerList.EndUpdate();

            }
        }
示例#41
0
 public void OnCommandSetAdminMode(string strSpeaker, string strText, MatchCommand mtcCommand, CapturedCommand capCommand, CPlayerSubset subMatchedScope)
 {
     this.ExecuteCommand("procon.protected.send", "vars.textChatModerationMode", "muted");
     this.ExecuteCommand("procon.protected.send", "admin.say", "Admin only chat mode has been activated", "all");
 }
示例#42
0
        public virtual void OnListPlayers(List<CPlayerInfo> players, CPlayerSubset subset) {
            if (subset.Subset == CPlayerSubset.PlayerSubsetType.All) {
                foreach (CPlayerInfo player in players) {
                    if (this.FrostbitePlayerInfoList.ContainsKey(player.SoldierName) == true) {
                        this.FrostbitePlayerInfoList[player.SoldierName] = player;
                    }
                    else {
                        this.FrostbitePlayerInfoList.Add(player.SoldierName, player);
                    }
                }

                foreach (var fpi_player in this.FrostbitePlayerInfoList.Keys) {
                    bool blFoundPlayer = false;

                    foreach (CPlayerInfo iPlayer in players) {
                        if (String.Compare(iPlayer.SoldierName, this.FrostbitePlayerInfoList[fpi_player].SoldierName) == 0) {
                            blFoundPlayer = true;
                            break;
                        }
                    }

                    if (blFoundPlayer == false) {
                        this.FrostbitePlayerInfoList.Remove(fpi_player);
                        this.PunkbusterPlayerInfoList.Remove(fpi_player);
                    }
                }
            }
        }
示例#43
0
        private void DispatchMatchedCommand(string playerName, string message, MatchCommand mtcCommand, CapturedCommand capCommand, CPlayerSubset subset) {
            bool isConfirmationRequired = false;

            if (capCommand.IsConfirmed == false) {
                foreach (MatchArgument mtcArgument in capCommand.MatchedArguments) {
                    if (mtcArgument.MatchScore > mtcCommand.Requirements.MinimumMatchSimilarity) {
                        isConfirmationRequired = true;
                        capCommand.IsConfirmed = false;
                        break;
                    }
                }
            }

            if (isConfirmationRequired == true && capCommand.IsConfirmed == false) {
                if (CommandsNeedingConfirmation.Contains(playerName) == true) {
                    CommandsNeedingConfirmation.Remove(playerName);
                }

                CommandsNeedingConfirmation.Add(new ConfirmationEntry(playerName, message, mtcCommand, capCommand, subset));

                ProconClient.Game.SendAdminSayPacket(String.Format("Did you mean {0}?", capCommand), new CPlayerSubset(CPlayerSubset.PlayerSubsetType.Player, playerName));
            }
            else {
                InvokeOnEnabled(mtcCommand.RegisteredClassname, mtcCommand.RegisteredMethodName, playerName, message, mtcCommand, capCommand, new CPlayerSubset(CPlayerSubset.PlayerSubsetType.All));

                InvokeOnAllEnabled("OnAnyMatchRegisteredCommand", playerName, message, mtcCommand, capCommand, new CPlayerSubset(CPlayerSubset.PlayerSubsetType.All));
            }
        }
示例#44
0
        protected override void DispatchAdminListPlayersResponse(FrostbiteConnection sender, Packet cpRecievedPacket, Packet cpRequestPacket) {
            if (cpRequestPacket.Words.Count >= 2) {
                cpRecievedPacket.Words.RemoveAt(0);
                if (ListPlayers != null) {
                    List<CPlayerInfo> lstPlayers = CPlayerInfo.GetPlayerList(cpRecievedPacket.Words);
                    var cpsSubset = new CPlayerSubset(cpRequestPacket.Words.GetRange(1, cpRequestPacket.Words.Count - 1));

                    FrostbiteConnection.RaiseEvent(ListPlayers.GetInvocationList(), this, lstPlayers, cpsSubset);

                    if (IsLayered == false) {
                        if ((DateTime.Now - LastListPlayersStamp).TotalSeconds >= 30) {
                            LastListPlayersStamp = DateTime.Now;
                            // fire pings on each player but not if ping comes with listPlayers
                            bool doPing = true;
                            if (lstPlayers.Count > 0) {
                                if (lstPlayers[0].Ping != 0) {
                                    doPing = false;
                                }
                            }
                            if (doPing == true) {
                                foreach (CPlayerInfo cpiPlayer in lstPlayers) {
                                    SendPlayerPingPacket(cpiPlayer.SoldierName);
                                }
                            }
                        }
                    }
                    lstPlayers.Clear();
                }
            }
        }
示例#45
0
 // Communication Events
 public void OnYelling(string strMessage, int iMessageDuration, CPlayerSubset cpsSubset)
 {
 }
示例#46
0
        /*
        public void OnPlayerPunkbusterInfo(CPunkbusterInfo pbInfo) {


        }
        */

        private void m_prcClient_ListPlayers(FrostbiteClient sender, List<CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset) {
            if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All) {
                foreach (CPlayerInfo cpiPlayer in lstPlayers) {
                    if (this.m_dicPlayers.ContainsKey(cpiPlayer.SoldierName) == true) {

                        ListViewItem playerListItem = this.m_dicPlayers[cpiPlayer.SoldierName];

                        if (this.m_prcClient != null && this.m_prcClient.Game != null && this.m_prcClient.Game.HasSquads == true) {
                            if (cpiPlayer.SquadID != uscPlayerListPanel.INT_NEUTRAL_SQUAD) {
                                if (String.Compare(playerListItem.SubItems["squad"].Text, cpiPlayer.ClanTag) == 0) { playerListItem.SubItems["squad"].Text = this.m_clocLanguage.GetLocalized("global.Squad" + cpiPlayer.SquadID.ToString(), null); }
                            }
                            else {
                                if (String.IsNullOrEmpty(playerListItem.SubItems["squad"].Text) != false) { playerListItem.SubItems["squad"].Text = String.Empty; }
                            }
                        }

                        if (String.Compare(playerListItem.SubItems["tags"].Text, cpiPlayer.ClanTag) != 0) { playerListItem.SubItems["tags"].Text = cpiPlayer.ClanTag; }

                        if (String.Compare(playerListItem.SubItems["score"].Text, cpiPlayer.Score.ToString()) != 0) { playerListItem.SubItems["score"].Text = cpiPlayer.Score.ToString(); }
                        playerListItem.SubItems["kills"].Tag = (Double)cpiPlayer.Kills;
                        if (String.Compare(playerListItem.SubItems["kills"].Text, cpiPlayer.Kills.ToString()) != 0) { playerListItem.SubItems["kills"].Text = cpiPlayer.Kills.ToString(); }

                        playerListItem.SubItems["deaths"].Tag = (Double)cpiPlayer.Deaths;
                        if (String.Compare(playerListItem.SubItems["deaths"].Text, cpiPlayer.Kills.ToString()) != 0) { playerListItem.SubItems["deaths"].Text = cpiPlayer.Deaths.ToString(); }

                        string kdr = cpiPlayer.Deaths > 0 ? String.Format("{0:0.00}", (Double)cpiPlayer.Kills / (Double)cpiPlayer.Deaths) : String.Format("{0:0.00}", (Double)cpiPlayer.Kills);

                        if (String.Compare(playerListItem.SubItems["kdr"].Text, kdr) == 0) { playerListItem.SubItems["kdr"].Text = kdr; }

                        //if (String.Compare(playerListItem.SubItems["ping"].Text, cpiPlayer.Ping.ToString()) != 0) { playerListItem.SubItems["ping"].Text = cpiPlayer.Ping.ToString(); }
                        if ((this.m_prcClient.Game.GameType.Equals("BF3") == true) && (this.m_dicPings.ContainsKey(cpiPlayer.SoldierName) == true)) {
                            if (String.Compare(playerListItem.SubItems["ping"].Text, this.m_dicPings[cpiPlayer.SoldierName].ToString()) != 0) { 
                                playerListItem.SubItems["ping"].Text = this.m_dicPings[cpiPlayer.SoldierName].ToString();
                                cpiPlayer.Ping = this.m_dicPings[cpiPlayer.SoldierName];
                            }
                        } else {
                            if (String.Compare(playerListItem.SubItems["ping"].Text, cpiPlayer.Ping.ToString()) != 0) { playerListItem.SubItems["ping"].Text = cpiPlayer.Ping.ToString(); }
                        }
                        
                        if (String.Compare(playerListItem.SubItems["rank"].Text, cpiPlayer.Rank.ToString()) != 0) { playerListItem.SubItems["rank"].Text = cpiPlayer.Ping.ToString(); }

                        AdditionalPlayerInfo sapiAdditional;

                        if (playerListItem.Tag == null) {
                            sapiAdditional = new AdditionalPlayerInfo();
                            sapiAdditional.m_strResolvedHostName = String.Empty;
                        }
                        else {
                            sapiAdditional = (AdditionalPlayerInfo)playerListItem.Tag;
                        }

                        sapiAdditional.m_cpiPlayer = cpiPlayer;
                        playerListItem.Tag = sapiAdditional;
                    }
                    else {
                        this.m_dicPlayers.Add(cpiPlayer.SoldierName, this.CreatePlayer(cpiPlayer));
                    }
                }

                List<string> lstKeys = new List<string>(this.m_dicPlayers.Keys);

                for (int i = 0; i < lstKeys.Count; i++) {
                    bool blFoundPlayer = false;

                    foreach (CPlayerInfo cpiPlayer in lstPlayers) {
                        if (String.Compare(cpiPlayer.SoldierName, this.m_dicPlayers[lstKeys[i]].Name) == 0) {
                            blFoundPlayer = true;
                            break;
                        }
                    }

                    if (blFoundPlayer == false) {
                        this.m_dicPlayers[lstKeys[i]].Remove();
                        this.m_dicPlayers.Remove(lstKeys[i]);
                    }
                }

                this.m_dicPlayers.Add("procon.playerlist.totals1", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals1", 1, 0), 1));
                this.m_dicPlayers.Add("procon.playerlist.totals2", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals2", 2, 0), 2));
                this.m_dicPlayers.Add("procon.playerlist.totals3", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals3", 3, 0), 3));
                this.m_dicPlayers.Add("procon.playerlist.totals4", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals4", 4, 0), 4));

                this.m_dicPlayers.Add("procon.playerlist.averages1", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages1", 1, 0), 1));
                this.m_dicPlayers.Add("procon.playerlist.averages2", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages2", 2, 0), 2));
                this.m_dicPlayers.Add("procon.playerlist.averages3", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages3", 3, 0), 3));
                this.m_dicPlayers.Add("procon.playerlist.averages4", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages4", 4, 0), 4));

                this.ArrangePlayers();
            }
        }
示例#47
0
 public void OnListPlayers(List <CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset)
 {
 }
示例#48
0
        protected virtual void DispatchAdminListPlayersResponse(FrostbiteConnection sender, Packet cpRecievedPacket, Packet cpRequestPacket) {
            if (cpRequestPacket.Words.Count >= 2) {
                cpRecievedPacket.Words.RemoveAt(0);
                if (ListPlayers != null) {
                    List<CPlayerInfo> lstPlayers = CPlayerInfo.GetPlayerList(cpRecievedPacket.Words);
                    var cpsSubset = new CPlayerSubset(cpRequestPacket.Words.GetRange(1, cpRequestPacket.Words.Count - 1));

                    this.ListPlayers(this, lstPlayers, cpsSubset);
                }
            }
        }
示例#49
0
 public virtual void OnYelling(string message, int messageDuration, CPlayerSubset subset) { }
示例#50
0
 public virtual void OnSaying(string message, CPlayerSubset subset) { }
示例#51
0
 public virtual void OnListPlayers(List<CPlayerInfo> players, CPlayerSubset subset) {
     if (subset.Subset == CPlayerSubset.PlayerSubsetType.All) {
         foreach (CPlayerInfo player in players) {
             if (this.FrostbitePlayerInfoList.ContainsKey(player.SoldierName) == true) {
                 this.FrostbitePlayerInfoList[player.SoldierName] = player;
             }
             else {
                 this.FrostbitePlayerInfoList.Add(player.SoldierName, player);
             }
         }
     }
 }
示例#52
0
        private void m_prcClient_ListPlayers(FrostbiteClient sender, List<CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset)
        {
            if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All) {

                string strSelectedName = (string)this.cboPlayers.SelectedItem;

                this.cboPlayers.Items.Clear();
                foreach (CPlayerInfo cpiPlayer in this.m_prcClient.PlayerList) {
                    if (this.cboPlayers.Items.Contains(cpiPlayer.SoldierName) == false) {
                        this.cboPlayers.Items.Add(cpiPlayer.SoldierName);
                    }
                }

                if (strSelectedName != null && this.cboPlayers.Items.Contains(strSelectedName) == true) {
                    this.cboPlayers.SelectedItem = strSelectedName;
                }

            }
        }