public static async Task <CreateSharedGroupResult> CreateAsync(PlayFabAuthenticationContext context, string sharedGroupDataName)
        {
            var request = new CreateSharedGroupRequest {
                AuthenticationContext = context, SharedGroupId = sharedGroupDataName
            };
            var response = await GetPlayFabServerInstanceAPI().CreateSharedGroupAsync(request);

            if (response.Error != null)
            {
                throw new Exception($"An error occurred while creating the group {sharedGroupDataName}: Error: {response.Error.GenerateErrorReport()}");
            }

            return(response.Result);
        }
Esempio n. 2
0
    IEnumerator onFindOrCreateTournamentLeaderbord()
    {
        string title_tournament_id = ChallengeController.instanse.getTournamentLevelDef();

        string titleValue = "";

        GetTitleDataRequest request = new GetTitleDataRequest()
        {
        };

        PlayFabClientAPI.GetTitleData(request, (result) => {
            foreach (var entry in result.Data)
            {
                if (entry.Key == title_tournament_id)
                {
                    titleValue = entry.Value;
                    break;
                }
            }
        },
                                      (error) => {
            Debug.Log("Error logging in player with custom ID:");
            Debug.Log(error.ErrorMessage);
            Debug.Log(error.ErrorDetails);
        });

        while (string.IsNullOrEmpty(titleValue))
        {
            yield return(new WaitForSeconds(0.1f));
        }
        Debug.Log("get tittle data succes");

        int currentMembersCount = -1;

        int _weekNumber = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(UnbiasedTime.Instance.Now(), System.Globalization.CalendarWeekRule.FirstDay, System.DayOfWeek.Monday);

        string currentGroupId = "";

        GetSharedGroupDataRequest _groupRequest = new GetSharedGroupDataRequest()
        {
            SharedGroupId = "star_tournament_" + title_tournament_id + "_" + UnbiasedTime.Instance.Now().Year.ToString() + "_" + _weekNumber + "_" + titleValue,
            GetMembers    = true
        };

        PlayFabClientAPI.GetSharedGroupData(_groupRequest, (result) => {
            Debug.Log("find group data of members " + result.Members.Count);
            currentGroupId      = _groupRequest.SharedGroupId;
            currentMembersCount = result.Members.Count;
            foreach (var entry in result.Data)
            {
            }
        },
                                            (error) => {
            Debug.Log("error by getting group data");
            Debug.Log(error.ErrorMessage);
            Debug.Log(error.ErrorDetails);
        });

        while (currentMembersCount < 0)
        {
            yield return(new WaitForSeconds(0.1f));
        }

        List <string> _membersToAdd = new List <string> ();

        _membersToAdd.Add(PlayFabId);



        bool leaderbordIsReady = false;

        leaderbordIsReady = currentMembersCount > 0 && currentMembersCount < ChallengeController.limitToJoinTournamentLeaderboard;

        if (!leaderbordIsReady)
        {
            if (currentMembersCount >= ChallengeController.limitToJoinTournamentLeaderboard)
            {
                int tValue = int.Parse(titleValue);
                tValue++;
                titleValue = tValue.ToString();
                inscTittleValue(titleValue);
                currentGroupId = "star_tournament_" + title_tournament_id + "_" + UnbiasedTime.Instance.Now().Year.ToString() + "_" + _weekNumber + "_" + titleValue;
            }

            CreateSharedGroupRequest _sharedGroupInvite = new CreateSharedGroupRequest()
            {
                SharedGroupId = currentGroupId
            };

            PlayFabClientAPI.CreateSharedGroup(_sharedGroupInvite, (result) => {
                Debug.Log("creating new group succes!");
                PlayerPrefs.SetString("last_saved_leaderboard", result.SharedGroupId);
                PlayerPrefs.Save();
                updateLeaderboardValue("0");
                leaderbordIsReady = true;
            },
                                               (error) => {
                Debug.Log("error by enter to group");
                Debug.Log(error.ErrorMessage);
                Debug.Log(error.ErrorDetails);
            });
        }

        while (!leaderbordIsReady)
        {
            yield return(new WaitForSeconds(0.1f));
        }

        PlayFab.ServerModels.AddSharedGroupMembersRequest _addMembersReqvest = new PlayFab.ServerModels.AddSharedGroupMembersRequest()
        {
            SharedGroupId = currentGroupId,
            PlayFabIds    = _membersToAdd
        };

        PlayFab.PlayFabServerAPI.AddSharedGroupMembers(_addMembersReqvest, (result) => {
            Debug.Log("adding to group succes!");
            PlayerPrefs.SetString("last_saved_leaderboard", _addMembersReqvest.SharedGroupId);
            PlayerPrefs.Save();
            updateLeaderboardValue("0");
        },
                                                       (error) => {
            Debug.Log("error by enter to group");
            Debug.Log(error.ErrorMessage);
            Debug.Log(error.ErrorDetails);
        });
    }