public static async Task AddGameStateHistory(TicTacToeState gameState, string playFabId, PlayFabApiSettings apiSettings, PlayFabAuthenticationContext authenticationContext) { var gamesPlayed = await GameDataUtil.GetGamesPlayed(playFabId, apiSettings, authenticationContext); var key = $"{Constants.GAME_STATE_KEY}_{gamesPlayed + 1}"; var serializedGameState = PlayFabSimpleJson.SerializeObject(gameState); var request = new UpdateUserDataRequest() { PlayFabId = playFabId, Data = new Dictionary <string, string>() { { key, serializedGameState } } }; var serverApi = new PlayFabServerInstanceAPI(apiSettings, authenticationContext); var result = await serverApi.UpdateUserDataAsync(request); if (result.Error != null) { throw new Exception($"An error occured while updating the game state: Error: {result.Error.GenerateErrorReport()}"); } await GameDataUtil.SetGamesPlayed(gamesPlayed + 1, playFabId, apiSettings, authenticationContext); }
// 指定したキーのユーザーデータを更新 // key : ex) UserDataKey.userMonsterList // value : ex) new List<UserMonsterInfo>(){ } public static async Task UpdateUserDataAsync(FunctionExecutionContext <dynamic> context, Dictionary <UserDataKey, object> dict) { var serverApi = new PlayFabServerInstanceAPI(context.ApiSettings, context.AuthenticationContext); var data = dict.ToDictionary(kvp => kvp.Key.ToString(), kvp => JsonConvert.SerializeObject(kvp.Value)); var result = await serverApi.UpdateUserDataAsync(new UpdateUserDataRequest() { PlayFabId = context.CallerEntityProfile.Lineage.MasterPlayerAccountId, Data = data, }); }
public static async Task SetGamesPlayed(int gamesPlayed, string playFabId, PlayFabApiSettings apiSettings, PlayFabAuthenticationContext authenticationContext) { var request = new UpdateUserDataRequest { PlayFabId = playFabId, Data = new Dictionary <string, string> { { Constants.GAMES_PLAYED_KEY.ToString(), gamesPlayed.ToString() } } }; var serverApi = new PlayFabServerInstanceAPI(apiSettings, authenticationContext); var result = await serverApi.UpdateUserDataAsync(request); if (result.Error != null) { throw new Exception($"An error occured while updating the number of games played: Error: {result.Error.GenerateErrorReport()}"); } }
public static async Task UpdateCurrentGameState(TicTacToeState state, string playFabId, PlayFabApiSettings apiSettings, PlayFabAuthenticationContext authenticationContext) { var serializedNewGameState = PlayFabSimpleJson.SerializeObject(state); var request = new UpdateUserDataRequest() { PlayFabId = playFabId, Data = new Dictionary <string, string>() { { Constants.GAME_CURRENT_STATE_KEY, serializedNewGameState } } }; var serverApi = new PlayFabServerInstanceAPI(apiSettings, authenticationContext); var result = await serverApi.UpdateUserDataAsync(request); if (result.Error != null) { throw new Exception($"An error occured while creating a new game state: {result.Error.GenerateErrorReport()}"); } }