Ignore:
Timestamp:
Nov 16, 2018, 10:38:46 PM (6 years ago)
Author:
alloc
Message:

*Latest optimizations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/MapRendering/Web/API/GetPlayerList.cs

    r326 r332  
    66using AllocsFixes.JSON;
    77using AllocsFixes.PersistentData;
     8using UnityEngine.Profiling;
    89
    910namespace AllocsFixes.NetConnections.Servers.Web.API {
     
    1213                        new Regex (@"^(>=|=>|>|<=|=<|<|==|=)?\s*([0-9]+(\.[0-9]*)?)$");
    1314
     15#if ENABLE_PROFILER
     16                private static readonly CustomSampler jsonSerializeSampler = CustomSampler.Create ("JSON_Build");
     17#endif
     18
    1419                public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    1520                        int permissionLevel) {
    1621                        AdminTools admTools = GameManager.Instance.adminTools;
    17                         user = user ?? new WebConnection ("", "", 0L);
     22                        user = user ?? new WebConnection ("", IPAddress.None, 0L);
    1823
    1924                        bool bViewAll = WebConnection.CanViewAllPlayers (permissionLevel);
     
    3540                        Players playersList = PersistentContainer.Instance.Players;
    3641
     42                       
    3743                        List<JSONObject> playerList = new List<JSONObject> ();
    3844
    39                         foreach (string sid in playersList.SteamIDs) {
    40                                 Player p = playersList [sid, false];
     45#if ENABLE_PROFILER
     46                        jsonSerializeSampler.Begin ();
     47#endif
     48
     49                        foreach (KeyValuePair<string, Player> kvp in playersList.Dict) {
     50                                Player p = kvp.Value;
    4151
    4252                                ulong player_steam_ID;
    43                                 if (!ulong.TryParse (sid, out player_steam_ID)) {
     53                                if (!ulong.TryParse (kvp.Key, out player_steam_ID)) {
    4454                                        player_steam_ID = 0L;
    4555                                }
     
    5262
    5363                                        JSONObject pJson = new JSONObject ();
    54                                         pJson.Add ("steamid", new JSONString (sid));
     64                                        pJson.Add ("steamid", new JSONString (kvp.Key));
    5565                                        pJson.Add ("entityid", new JSONNumber (p.EntityID));
    5666                                        pJson.Add ("ip", new JSONString (p.IP));
     
    6676                                        JSONBoolean banned;
    6777                                        if (admTools != null) {
    68                                                 banned = new JSONBoolean (admTools.IsBanned (sid));
     78                                                banned = new JSONBoolean (admTools.IsBanned (kvp.Key));
    6979                                        } else {
    7080                                                banned = new JSONBoolean (false);
     
    7686                                }
    7787                        }
     88
     89#if ENABLE_PROFILER
     90                        jsonSerializeSampler.End ();
     91#endif
    7892
    7993                        IEnumerable<JSONObject> list = playerList;
Note: See TracChangeset for help on using the changeset viewer.