public static ServerStatistics.Storage Get(ulong id)
 {
     ServerStatistics.Storage storage;
     if (ServerStatistics.players.TryGetValue(id, out storage))
     {
         return(storage);
     }
     storage = new ServerStatistics.Storage();
     ServerStatistics.players.Add(id, storage);
     return(storage);
 }
Example #2
0
        public static void stats(ConsoleSystem.Arg arg)
        {
            TextTable table = new TextTable();

            table.AddColumn("id");
            table.AddColumn("name");
            table.AddColumn("time");
            table.AddColumn("kills");
            table.AddColumn("deaths");
            table.AddColumn("suicides");
            table.AddColumn("player");
            table.AddColumn("building");
            table.AddColumn("entity");
            Action <ulong, string> action = (Action <ulong, string>)((id, name) =>
            {
                ServerStatistics.Storage storage = ServerStatistics.Get(id);
                string shortString = TimeSpan.FromSeconds((double)storage.Get("time")).ToShortString();
                string str1        = storage.Get("kill_player").ToString();
                string str2        = (storage.Get("deaths") - storage.Get("death_suicide")).ToString();
                string str3        = storage.Get("death_suicide").ToString();
                string str4        = storage.Get("hit_player_direct_los").ToString();
                string str5        = storage.Get("hit_player_indirect_los").ToString();
                string str6        = storage.Get("hit_building_direct_los").ToString();
                string str7        = storage.Get("hit_building_indirect_los").ToString();
                string str8        = storage.Get("hit_entity_direct_los").ToString();
                string str9        = storage.Get("hit_entity_indirect_los").ToString();
                table.AddRow(new string[9]
                {
                    id.ToString(),
                    name,
                    shortString,
                    str1,
                    str2,
                    str3,
                    str4 + " / " + str5,
                    str6 + " / " + str7,
                    str8 + " / " + str9
                });
            });
            ulong filterID = arg.GetUInt64(0, 0UL);

            if (filterID == 0UL)
            {
                string str1 = arg.GetString(0, "");
                foreach (BasePlayer activePlayer in BasePlayer.activePlayerList)
                {
                    try
                    {
                        if (activePlayer.IsValid())
                        {
                            string str2 = StringExtensions.QuoteSafe(activePlayer.GetSubName(32));
                            if (str1.Length > 0)
                            {
                                if (!StringEx.Contains(str2, str1, CompareOptions.IgnoreCase))
                                {
                                    continue;
                                }
                            }
                            action(activePlayer.userID, str2);
                        }
                    }
                    catch (Exception ex)
                    {
                        table.AddRow(new string[2]
                        {
                            activePlayer.UserIDString,
                            StringExtensions.QuoteSafe(ex.Message)
                        });
                    }
                }
            }
            else
            {
                string     str        = "N/A";
                BasePlayer basePlayer = BasePlayer.activePlayerList.Find((Predicate <BasePlayer>)(p => (long)p.userID == (long)filterID));
                if (Object.op_Implicit((Object)basePlayer))
                {
                    str = StringExtensions.QuoteSafe(basePlayer.GetSubName(32));
                }
                action(filterID, str);
            }
            arg.ReplyWith(((object)table).ToString());
        }
Example #3
0
        public static void stats(ConsoleSystem.Arg arg)
        {
            TextTable textTable = new TextTable();

            textTable.AddColumn("id");
            textTable.AddColumn("name");
            textTable.AddColumn("time");
            textTable.AddColumn("kills");
            textTable.AddColumn("deaths");
            textTable.AddColumn("suicides");
            textTable.AddColumn("player");
            textTable.AddColumn("building");
            textTable.AddColumn("entity");
            Action <ulong, string> action = (ulong id, string name) => {
                ServerStatistics.Storage storage = ServerStatistics.Get(id);
                string shortString = TimeSpan.FromSeconds((double)storage.Get("time")).ToShortString();
                string str         = storage.Get("kill_player").ToString();
                string str1        = (storage.Get("deaths") - storage.Get("death_suicide")).ToString();
                string str2        = storage.Get("death_suicide").ToString();
                string str3        = storage.Get("hit_player_direct_los").ToString();
                string str4        = storage.Get("hit_player_indirect_los").ToString();
                string str5        = storage.Get("hit_building_direct_los").ToString();
                string str6        = storage.Get("hit_building_indirect_los").ToString();
                string str7        = storage.Get("hit_entity_direct_los").ToString();
                string str8        = storage.Get("hit_entity_indirect_los").ToString();
                textTable.AddRow(new string[] { id.ToString(), name, shortString, str, str1, str2, string.Concat(str3, " / ", str4), string.Concat(str5, " / ", str6), string.Concat(str7, " / ", str8) });
            };
            ulong num = arg.GetUInt64(0, (ulong)0);

            if (num != 0)
            {
                string     str9       = "N/A";
                BasePlayer basePlayer = BasePlayer.activePlayerList.Find((BasePlayer p) => p.userID == num);
                if (basePlayer)
                {
                    str9 = basePlayer.GetSubName(32).QuoteSafe();
                }
                action(num, str9);
            }
            else
            {
                string str10 = arg.GetString(0, "");
                foreach (BasePlayer basePlayer1 in BasePlayer.activePlayerList)
                {
                    try
                    {
                        if (basePlayer1.IsValid())
                        {
                            string str11 = basePlayer1.GetSubName(32).QuoteSafe();
                            if (str10.Length <= 0 || str11.Contains(str10, CompareOptions.IgnoreCase))
                            {
                                action(basePlayer1.userID, str11);
                            }
                        }
                    }
                    catch (Exception exception1)
                    {
                        Exception exception = exception1;
                        textTable.AddRow(new string[] { basePlayer1.UserIDString, exception.Message.QuoteSafe() });
                    }
                }
            }
            arg.ReplyWith(textTable.ToString());
        }
Example #4
0
        public static void stats(Arg arg)
        {
            TextTable table = new TextTable();

            table.AddColumn("id");
            table.AddColumn("name");
            table.AddColumn("time");
            table.AddColumn("kills");
            table.AddColumn("deaths");
            table.AddColumn("suicides");
            table.AddColumn("player");
            table.AddColumn("building");
            table.AddColumn("entity");
            Action <ulong, string> action = delegate(ulong id, string name)
            {
                ServerStatistics.Storage storage = ServerStatistics.Get(id);
                string text2  = TimeSpanEx.ToShortString(TimeSpan.FromSeconds(storage.Get("time")));
                string text3  = storage.Get("kill_player").ToString();
                string text4  = (storage.Get("deaths") - storage.Get("death_suicide")).ToString();
                string text5  = storage.Get("death_suicide").ToString();
                string text6  = storage.Get("hit_player_direct_los").ToString();
                string text7  = storage.Get("hit_player_indirect_los").ToString();
                string text8  = storage.Get("hit_building_direct_los").ToString();
                string text9  = storage.Get("hit_building_indirect_los").ToString();
                string text10 = storage.Get("hit_entity_direct_los").ToString();
                string text11 = storage.Get("hit_entity_indirect_los").ToString();
                table.AddRow(id.ToString(), name, text2, text3, text4, text5, text6 + " / " + text7, text8 + " / " + text9, text10 + " / " + text11);
            };
            ulong uInt = arg.GetUInt64(0, 0uL);

            if (uInt == 0L)
            {
                string @string = arg.GetString(0);
                foreach (BasePlayer activePlayer in BasePlayer.activePlayerList)
                {
                    try
                    {
                        if (BaseEntityEx.IsValid(activePlayer))
                        {
                            string text = activePlayer.displayName.QuoteSafe();
                            if (@string.Length <= 0 || text.Contains(@string, CompareOptions.IgnoreCase))
                            {
                                action(activePlayer.userID, text);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        table.AddRow(activePlayer.UserIDString, ex.Message.QuoteSafe());
                    }
                }
            }
            else
            {
                string     arg2       = "N/A";
                BasePlayer basePlayer = BasePlayer.FindByID(uInt);
                if ((bool)basePlayer)
                {
                    arg2 = basePlayer.displayName.QuoteSafe();
                }
                action(uInt, arg2);
            }
            arg.ReplyWith(table.ToString());
        }
 public void Init()
 {
     this.storage = ServerStatistics.Get(this.player.userID);
 }