| using System.Collections; | 
| using System.Collections.Generic; | 
| using UnityEngine; | 
| using System.Threading; | 
| using LitJson; | 
|   | 
| public class ServerListParser : SingletonMonobehaviour<ServerListParser> | 
| { | 
|   | 
|     bool hasCommonResult = false; | 
|     ServerInfoCommon serverInfoCommon; | 
|     bool hasPlayerResult = false; | 
|     ServerInfoPlayer serverInfoPlayer; | 
|   | 
|     public void PushCommonServerListRawData(string content) | 
|     { | 
|         hasCommonResult = false; | 
|         ThreadPool.QueueUserWorkItem((object aaa) => | 
|         { | 
|             serverInfoCommon = JsonMapper.ToObject<ServerInfoCommon>(content); | 
|             hasCommonResult = true; | 
|         }); | 
|     } | 
|   | 
|     public void PushPlayerServerListRawData(string content) | 
|     { | 
|         hasPlayerResult = false; | 
|         Debug.Log("ServerListParser:" + content); | 
|         if (content == "" || content == "{}") | 
|             return; | 
|         JsonData RankArr = JsonMapper.ToObject(content); | 
|         if (RankArr["player"]["group_list"].Count == 0) | 
|             return; | 
|   | 
|         ThreadPool.QueueUserWorkItem((object aaa) => | 
|         { | 
|             serverInfoPlayer = JsonMapper.ToObject<ServerInfoPlayer>(content); | 
|             hasPlayerResult = true; | 
|             SetIsInWhiteList(); | 
|         }); | 
|     } | 
|   | 
|     public void ReportCommonResult() | 
|     { | 
|         if (serverInfoCommon != null) | 
|         { | 
|             ServerListCenter.Instance.SetServerlistCommon(serverInfoCommon); | 
|         } | 
|     } | 
|   | 
|     public void ReportPlayerResult() | 
|     { | 
|         if (serverInfoPlayer != null) | 
|         { | 
|             ServerListCenter.Instance.SetServerListPlayer(serverInfoPlayer); | 
|         } | 
|     } | 
|   | 
|     public void SetIsInWhiteList() | 
|     { | 
|         DebugUtility.Instance.isWhiteListAccount = serverInfoPlayer.white == 1; | 
|     } | 
|   | 
|   | 
|     private void Update() | 
|     { | 
|         if (hasCommonResult) | 
|         { | 
|             ReportCommonResult(); | 
|             hasCommonResult = false; | 
|         } | 
|   | 
|         if (hasPlayerResult) | 
|         { | 
|             ReportPlayerResult(); | 
|             hasPlayerResult = false; | 
|         } | 
|     } | 
|   | 
| } |