public Match(JSONDict jsonData)
        {
            Description   = jsonData.SafeGetStringValue("matchDescription");
            EntryCash     = (float)jsonData.SafeGetDoubleValue("entryCash");
            EntryPoints   = jsonData.SafeGetIntValue("entryPoints");
            ID            = jsonData.SafeGetIntValue("id");
            TemplateID    = jsonData.SafeGetIntValue("templateId");
            Name          = jsonData.SafeGetStringValue("name");
            IsCash        = jsonData.SafeGetBoolValue("isCash");
            IsSynchronous = (bool)jsonData.SafeGetBoolValue("isSynchronous");

            object players = jsonData.SafeGetValue("players");

            Players = new List <Player>();

            List <object> playerArray = (List <object>)players;

            foreach (object player in playerArray)
            {
                Players.Add(new Player((Dictionary <string, object>)player));
            }

            var connectionInfoJson = jsonData.SafeGetValue("connectionInfo") as JSONDict;

            CustomServerConnectionInfo = connectionInfoJson != null
                ? new CustomServerConnectionInfo(connectionInfoJson)
                : null;

#if UNITY_IOS
            GameParams = new Dictionary <string, string>();
            object parameters = jsonData.SafeGetValue("gameParameters");
            if (parameters != null && parameters.GetType() == typeof(JSONDict))
            {
                foreach (KeyValuePair <string, object> kvp in (JSONDict)parameters)
                {
                    if (kvp.Value == null)
                    {
                        continue;
                    }

                    string val = kvp.Value.ToString();
                    if (kvp.Key == "skillz_difficulty")
                    {
                        SkillzDifficulty = Helpers.SafeUintParse(val);
                    }
                    else
                    {
                        GameParams.Add(kvp.Key, val);
                    }
                }
            }
#elif UNITY_ANDROID
            GameParams       = HashtableToDictionary(Skillz.GetMatchRules());
            SkillzDifficulty = jsonData.SafeGetUintValue("skillzDifficulty");
#endif
        }
 private void SetSyncMatchSettings(SkillzSDK.Match matchInfo)
 {
     SkillzSDK.CustomServerConnectionInfo info = matchInfo.CustomServerConnectionInfo;
     UserData.Instance.SyncUrl        = info.ServerIp;
     UserData.Instance.SyncPort       = (uint)int.Parse(info.ServerPort);
     UserData.Instance.SyncMatchToken = info.MatchToken;
     UserData.Instance.SyncMatchId    = info.MatchId;
     UserData.Instance.IsGameOver     = false;
     foreach (SkillzSDK.Player player in matchInfo.Players)
     {
         if (player.IsCurrentPlayer)
         {
             UserData.Instance.CurrentPlayerId        = (long)player.ID;
             UserData.Instance.CurrentPlayerAvatarUrl = player.AvatarURL;
             UserData.Instance.CurrentPlayerName      = player.DisplayName;
         }
         else
         {
             UserData.Instance.OpponentAvatarUrl = player.AvatarURL;
             UserData.Instance.OpponentName      = player.DisplayName;
         }
     }
 }