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); }
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); }); }