Ejemplo n.º 1
0
    public void GetAccountInfo(Action <JSONObject> callback, Action <string> errorCallback)
    {
        JSONObject     body = JSONObject.Create();
        PlayFabCommand cmd  = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "GetAccountInfo", body, callback, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 2
0
    public void GetPlayFabToFacebookIdMapping(List <string> facebookIds, Action <Dictionary <string, string> > callback, Action <string> errorCallback)
    {
        if (facebookIds.Count == 0)
        {
            callback(new Dictionary <string, string>());
            return;
        }
        JSONObject jSONObject  = JSONObject.Create();
        JSONObject jSONObject2 = new JSONObject(JSONObject.Type.ARRAY);

        foreach (string facebookId in facebookIds)
        {
            jSONObject2.Add(facebookId);
        }
        jSONObject.AddField("FacebookIDs", jSONObject2);
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "GetPlayFabIDsFromFacebookIDs", jSONObject, delegate(JSONObject json)
        {
            Dictionary <string, string> obj = (from e in json.asJSONObject("Data", JSONObject.Type.ARRAY).list
                                               where e.HasField("PlayFabId") && e.HasField("FacebookId")
                                               select e).ToDictionary((JSONObject e) => e.asString("PlayFabId", () => string.Empty), (JSONObject e) => e.asString("FacebookId", () => string.Empty));
            callback(obj);
        }, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 3
0
    public void GetFriendLeaderboard(string statisticName, Action <Leaderboard> callback, Action <string> errorCallback, int maxResultsCount, bool useSpecificVersion = false, int version = 0)
    {
        JSONObject request = JSONObject.Create();

        request.AddField("StatisticName", statisticName);
        request.AddField("StartPosition", 0);
        request.AddField("MaxResultsCount", maxResultsCount);
        request.AddField("UseSpecificVersion", useSpecificVersion);
        request.AddField("IncludeFacebookFriends", val: true);
        request.AddField("Version", version);
        request.AddField("ProfileConstraints", GetProfileConstraints());
        Action <Leaderboard> aroundPlayer = delegate(Leaderboard lb)
        {
            PlayFabCommand cmd2 = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "GetFriendLeaderboardAroundPlayer", request, delegate(JSONObject json2)
            {
                callback(lb.WithEntries(LeaderboardFromJSON(json2).Entries));
            }, errorCallback);
            QueueCommand(cmd2);
        };
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "GetFriendLeaderboard", request, delegate(JSONObject json)
        {
            aroundPlayer(LeaderboardFromJSON(json));
        }, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 4
0
    public void GetUserData(Action <JSONObject> callback, Action <string> errorCallback)
    {
        JSONObject jSONObject = JSONObject.Create();

        jSONObject.AddField("Keys", "Base");
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "GetUserData", jSONObject, callback, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 5
0
    public void LoginAndGetInfo(JSONObject loginRequest, string loginEndpoint, Action <JSONObject> callback, Action <string> errorCallback, bool createAccount = true)
    {
        loginRequest.AddField("TitleId", PersistentSingleton <GameSettings> .Instance.PlayFabTitleId);
        loginRequest.AddField("CreateAccount", createAccount);
        loginRequest.AddField("InfoRequestParameters", GetLoginInfoRequestParameters());
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + loginEndpoint, loginRequest, callback, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 6
0
    public void LinkFacebookAccount(AccessToken access, Action <JSONObject> callback, Action <string> errorCallback)
    {
        JSONObject jSONObject = JSONObject.Create();

        jSONObject.AddField("AccessToken", access.TokenString);
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "LinkFacebookAccount", jSONObject, callback, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 7
0
    public void LinkCustomId(string customId, bool force, string sessionTicket, Action <JSONObject> callback, Action <string> errorCallback)
    {
        JSONObject jSONObject = JSONObject.Create();

        jSONObject.AddField("CustomId", customId);
        jSONObject.AddField("ForceLink", force);
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "LinkCustomID", jSONObject, callback, errorCallback, sessionTicket);

        QueueCommand(cmd);
    }
Ejemplo n.º 8
0
    public void UpdateUserDisplayName(string name, Action <JSONObject> callback, Action <string> errorCallback)
    {
        name = name.PadRight(3, ' ');
        name = name.Substring(0, Mathf.Min(name.Length, 25));
        JSONObject jSONObject = JSONObject.Create();

        jSONObject.AddField("DisplayName", name);
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "UpdateUserTitleDisplayName", jSONObject, callback, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 9
0
    public void UpdatePlayerStatistic(JSONObject statistic, Action <JSONObject> callback, Action <string> errorCallback)
    {
        JSONObject jSONObject = JSONObject.Create();

        jSONObject.Add(statistic);
        JSONObject jSONObject2 = JSONObject.Create();

        jSONObject2.AddField("Statistics", jSONObject);
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "UpdatePlayerStatistics", jSONObject2, callback, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 10
0
    private void ClaimSession(Action <JSONObject> callback, Action <string> errorCallback)
    {
        JSONObject jSONObject  = JSONObject.Create();
        JSONObject jSONObject2 = JSONObject.Create();

        jSONObject2.AddField("SessionOwnerDeviceId", GetSystemUniqueIdentifier());
        jSONObject.AddField("Data", jSONObject2);
        jSONObject.AddField("Permission", "Private");
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "UpdateUserData", jSONObject, callback, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 11
0
    public void LoginWithFacebook(AccessToken access, bool createAccount, Action <JSONObject> callback, Action <string> errorCallback)
    {
        JSONObject jSONObject = JSONObject.Create();

        jSONObject.AddField("TitleId", PersistentSingleton <GameSettings> .Instance.PlayFabTitleId);
        jSONObject.AddField("CreateAccount", createAccount);
        jSONObject.AddField("InfoRequestParameters", GetLoginInfoRequestParameters());
        jSONObject.AddField("AccessToken", access.TokenString);
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "LoginWithFacebook", jSONObject, callback, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 12
0
    public void ExecuteCloudScript(string functionName, Action <JSONObject> callback, Action <string> errorCallback, JSONObject parameters = null)
    {
        JSONObject jSONObject = JSONObject.Create();

        jSONObject.AddField("FunctionName", functionName);
        jSONObject.AddField("GeneratePlayStreamEvent", val: true);
        if (parameters != null)
        {
            jSONObject.AddField("FunctionParameter", parameters);
        }
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "ExecuteCloudScript", jSONObject, callback, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 13
0
    public void GetFacebookToPlayFabID(string facebookId, Action <string> callback, Action <string> errorCallback)
    {
        JSONObject jSONObject  = JSONObject.Create();
        JSONObject jSONObject2 = new JSONObject(JSONObject.Type.ARRAY);

        jSONObject2.Add(facebookId);
        jSONObject.AddField("FacebookIDs", jSONObject2);
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "GetPlayFabIDsFromFacebookIDs", jSONObject, delegate(JSONObject json)
        {
            Dictionary <string, string> dictionary = (from e in json.asJSONObject("Data", JSONObject.Type.ARRAY).list
                                                      where e.HasField("PlayFabId") && e.HasField("FacebookId")
                                                      select e).ToDictionary((JSONObject e) => e.asString("FacebookId", () => string.Empty), (JSONObject e) => e.asString("PlayFabId", () => string.Empty));
            callback((!dictionary.ContainsKey(facebookId)) ? string.Empty : dictionary[facebookId]);
        }, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 14
0
    public void GetLeaderboard(string statisticName, int startPosition, Action <Leaderboard> callback, Action <string> errorCallback, int maxResultsCount, bool useSpecificVersion = false, int version = 0)
    {
        JSONObject jSONObject = JSONObject.Create();

        jSONObject.AddField("StatisticName", statisticName);
        jSONObject.AddField("StartPosition", startPosition);
        jSONObject.AddField("MaxResultsCount", maxResultsCount);
        jSONObject.AddField("UseSpecificVersion", useSpecificVersion);
        jSONObject.AddField("IncludeFacebookFriends", val: true);
        jSONObject.AddField("Version", version);
        jSONObject.AddField("ProfileConstraints", GetProfileConstraints());
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "GetLeaderboard", jSONObject, delegate(JSONObject json)
        {
            callback(LeaderboardFromJSON(json));
        }, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 15
0
    public void GetTournamentLeaderboard(string statisticName, Action <Leaderboard> callback, Action <string> errorCallback, int maxResultsCount, bool useSpecificVersion = false, int version = 0)
    {
        JSONObject jSONObject = JSONObject.Create();

        jSONObject.AddField("StatisticName", statisticName);
        jSONObject.AddField("PlayFabId", "D1E872B9C9DA0648");
        jSONObject.AddField("MaxResultsCount", 1);
        jSONObject.AddField("UseSpecificVersion", useSpecificVersion);
        jSONObject.AddField("Version", version);
        Action <Leaderboard> fromLeaderboardPoint = delegate(Leaderboard lb)
        {
            int val = 0;
            if (lb.Entries[0].Position.Value > maxResultsCount)
            {
                val = UnityEngine.Random.Range(0, lb.Entries[0].Position.Value - maxResultsCount);
            }
            JSONObject jSONObject2 = JSONObject.Create();
            jSONObject2.AddField("StatisticName", statisticName);
            jSONObject2.AddField("StartPosition", val);
            jSONObject2.AddField("MaxResultsCount", maxResultsCount);
            jSONObject2.AddField("UseSpecificVersion", useSpecificVersion);
            jSONObject2.AddField("Version", version);
            jSONObject2.AddField("ProfileConstraints", GetProfileConstraints());
            PlayFabCommand cmd2 = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "GetLeaderboard", jSONObject2, delegate(JSONObject json2)
            {
                callback(LeaderboardFromJSON(json2));
            }, errorCallback);
            QueueCommand(cmd2);
        };
        PlayFabCommand cmd = new PlayFabCommand(PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "GetLeaderboardAroundPlayer", jSONObject, delegate(JSONObject json)
        {
            fromLeaderboardPoint(LeaderboardFromJSON(json));
        }, errorCallback);

        QueueCommand(cmd);
    }
Ejemplo n.º 16
0
    private IEnumerator QueueRoutine()
    {
        while (true)
        {
            yield return(null);

            if (m_commandQueue.Count > 0 && m_commandInFlight == null)
            {
                m_commandInFlight = m_commandQueue.Dequeue();
            }
            if (m_commandInFlight == null)
            {
                m_hasCommandsInFlight.Value = false;
                continue;
            }
            m_hasCommandsInFlight.Value = true;
            m_commandInFlight.Tries++;
            Dictionary <string, string> headers = new Dictionary <string, string>
            {
                ["Content-Type"] = "application/json"
            };
            string resolvedSessionTicket = (m_commandInFlight.OverrideSessionTicket != null) ? m_commandInFlight.OverrideSessionTicket : m_sessionTicket;
            if (resolvedSessionTicket != null)
            {
                headers["X-Authentication"] = resolvedSessionTicket;
            }
            WWW www = new WWW(m_commandInFlight.Url, Encoding.UTF8.GetBytes(m_commandInFlight.Body.ToString()), headers);
            yield return(www);

            string error = www.error;
            if (m_commandInFlight == null)
            {
                continue;
            }
            if (error != null)
            {
                if (m_commandInFlight.Url == PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "UpdateUserTitleDisplayName" || m_commandInFlight.Url == PersistentSingleton <GameSettings> .Instance.PlayFabUrl + "GetFriendLeaderboard")
                {
                    if (m_commandInFlight.ErrorCallback != null)
                    {
                        m_commandInFlight.ErrorCallback(error);
                    }
                    m_commandInFlight = null;
                }
                yield return(new WaitForSeconds(5f));

                if (m_commandInFlight != null && m_commandInFlight.Tries >= 3)
                {
                    if (m_commandInFlight.ErrorCallback != null)
                    {
                        m_commandInFlight.ErrorCallback(error);
                    }
                    ClearCmdQueue();
                    Login();
                }
            }
            else
            {
                if (m_commandInFlight.Callback != null)
                {
                    m_commandInFlight.Callback(ResponseToJSON(www));
                }
                m_commandInFlight = null;
            }
        }
    }
Ejemplo n.º 17
0
 private void QueueCommand(PlayFabCommand cmd)
 {
     m_commandQueue.Enqueue(cmd);
 }
Ejemplo n.º 18
0
 public void ClearCmdQueue()
 {
     m_commandInFlight = null;
     m_commandQueue.Clear();
 }