From a4b78b2445c2de0ae40a891020df81dabcd64e89 Mon Sep 17 00:00:00 2001 From: PlayFab SDK Team Date: Mon, 25 Nov 2024 21:05:37 +0000 Subject: [PATCH] https://docs.microsoft.com/en-us/gaming/playfab/release-notes/#241122 --- PlayFabSDK/source/PlayFabAdminModels.cs | 4 ++ PlayFabSDK/source/PlayFabClientAPI.cs | 28 +++++++++++++ PlayFabSDK/source/PlayFabClientInstanceAPI.cs | 27 +++++++++++++ PlayFabSDK/source/PlayFabClientModels.cs | 37 +++++++++++++++++ PlayFabSDK/source/PlayFabErrors.cs | 4 ++ PlayFabSDK/source/PlayFabMultiplayerModels.cs | 4 +- PlayFabSDK/source/PlayFabSDK.csproj | 4 +- PlayFabSDK/source/PlayFabServerAPI.cs | 28 +++++++++++++ PlayFabSDK/source/PlayFabServerInstanceAPI.cs | 27 +++++++++++++ PlayFabSDK/source/PlayFabServerModels.cs | 40 +++++++++++++++++++ PlayFabSDK/source/PlayFabSettings.cs | 6 +-- .../source/PlayFabCloudScriptPlugin.csproj | 6 +-- .../PlayFabSDK/PlayFabAdminModels.cs | 4 ++ .../PlayFabSDK/PlayFabClientAPI.cs | 28 +++++++++++++ .../PlayFabSDK/PlayFabClientInstanceAPI.cs | 27 +++++++++++++ .../PlayFabSDK/PlayFabClientModels.cs | 37 +++++++++++++++++ .../PlayFabSDK/PlayFabErrors.cs | 4 ++ .../PlayFabSDK/PlayFabMultiplayerModels.cs | 4 +- .../PlayFabSDK/PlayFabSDK.csproj | 4 +- .../PlayFabSDK/PlayFabServerAPI.cs | 28 +++++++++++++ .../PlayFabSDK/PlayFabServerInstanceAPI.cs | 27 +++++++++++++ .../PlayFabSDK/PlayFabServerModels.cs | 40 +++++++++++++++++++ .../PlayFabSDK/PlayFabSettings.cs | 6 +-- 23 files changed, 409 insertions(+), 15 deletions(-) diff --git a/PlayFabSDK/source/PlayFabAdminModels.cs b/PlayFabSDK/source/PlayFabAdminModels.cs index 6d2ecb6a..d6db1726 100644 --- a/PlayFabSDK/source/PlayFabAdminModels.cs +++ b/PlayFabSDK/source/PlayFabAdminModels.cs @@ -2814,6 +2814,8 @@ public enum GenericErrorCodes StatisticColumnLengthMismatch, InvalidExternalEntityId, UpdatingStatisticsUsingTransactionIdNotAvailableForFreeTier, + TransactionAlreadyApplied, + ReportDataNotRetrievedSuccessfully, MatchmakingEntityInvalid, MatchmakingPlayerAttributesInvalid, MatchmakingQueueNotFound, @@ -3093,6 +3095,8 @@ public enum GenericErrorCodes GameSaveFileNotUploaded, GameSaveBadRequest, GameSaveOperationNotAllowed, + GameSaveDataStorageQuotaExceeded, + GameSaveNewerManifestExists, StateShareForbidden, StateShareTitleNotInFlight, StateShareStateNotFound, diff --git a/PlayFabSDK/source/PlayFabClientAPI.cs b/PlayFabSDK/source/PlayFabClientAPI.cs index 34ae7d22..615ba809 100644 --- a/PlayFabSDK/source/PlayFabClientAPI.cs +++ b/PlayFabSDK/source/PlayFabClientAPI.cs @@ -1594,6 +1594,34 @@ public static async Task> GetPlay return new PlayFabResult { Result = result, CustomData = customData }; } + /// + /// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona + /// names. + /// + public static async Task> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary extraHeaders = null) + { + await new PlayFabUtil.SynchronizationContextRemover(); + + var requestContext = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer; + var requestSettings = PlayFabSettings.staticSettings; + if (requestContext.ClientSessionTicket == null) throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method"); + + + var httpResult = await PlayFabHttp.DoPost("/Client/GetPlayFabIDsFromSteamNames", request, "X-Authorization", requestContext.ClientSessionTicket, extraHeaders); + if (httpResult is PlayFabError) + { + var error = (PlayFabError)httpResult; + PlayFabSettings.GlobalErrorHandler?.Invoke(error); + return new PlayFabResult { Error = error, CustomData = customData }; + } + + var resultRawJson = (string)httpResult; + var resultData = PluginManager.GetPlugin(PluginContract.PlayFab_Serializer).DeserializeObject>(resultRawJson); + var result = resultData.data; + + return new PlayFabResult { Result = result, CustomData = customData }; + } + /// /// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for /// the user accounts, available as "_id" from the Twitch API methods (ex: diff --git a/PlayFabSDK/source/PlayFabClientInstanceAPI.cs b/PlayFabSDK/source/PlayFabClientInstanceAPI.cs index 2b0da05a..43c3e9ff 100644 --- a/PlayFabSDK/source/PlayFabClientInstanceAPI.cs +++ b/PlayFabSDK/source/PlayFabClientInstanceAPI.cs @@ -1563,6 +1563,33 @@ public async Task> GetPlayFabIDsF return new PlayFabResult { Result = result, CustomData = customData }; } + /// + /// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona + /// names. + /// + public async Task> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary extraHeaders = null) + { + await new PlayFabUtil.SynchronizationContextRemover(); + + var requestContext = request?.AuthenticationContext ?? authenticationContext; + var requestSettings = apiSettings ?? PlayFabSettings.staticSettings; + if (requestContext.ClientSessionTicket == null) throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method"); + + var httpResult = await PlayFabHttp.DoPost("/Client/GetPlayFabIDsFromSteamNames", request, "X-Authorization", requestContext.ClientSessionTicket, extraHeaders, requestSettings); + if (httpResult is PlayFabError) + { + var error = (PlayFabError)httpResult; + PlayFabSettings.GlobalErrorHandler?.Invoke(error); + return new PlayFabResult { Error = error, CustomData = customData }; + } + + var resultRawJson = (string)httpResult; + var resultData = PluginManager.GetPlugin(PluginContract.PlayFab_Serializer).DeserializeObject>(resultRawJson); + var result = resultData.data; + + return new PlayFabResult { Result = result, CustomData = customData }; + } + /// /// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for /// the user accounts, available as "_id" from the Twitch API methods (ex: diff --git a/PlayFabSDK/source/PlayFabClientModels.cs b/PlayFabSDK/source/PlayFabClientModels.cs index 621fbe22..aa27cc70 100644 --- a/PlayFabSDK/source/PlayFabClientModels.cs +++ b/PlayFabSDK/source/PlayFabClientModels.cs @@ -2933,6 +2933,29 @@ public class GetPlayFabIDsFromSteamIDsResult : PlayFabResultCommon } + public class GetPlayFabIDsFromSteamNamesRequest : PlayFabRequestCommon + { + /// + /// Array of unique Steam identifiers for which the title needs to get PlayFab identifiers. The array cannot exceed 2,000 in + /// length. + /// + public List SteamNames ; + + } + + /// + /// For Steam identifiers which have not been linked to PlayFab accounts, or if the user has not logged in recently, null + /// will be returned. + /// + public class GetPlayFabIDsFromSteamNamesResult : PlayFabResultCommon + { + /// + /// Mapping of Steam identifiers to PlayFab identifiers. + /// + public List Data ; + + } + public class GetPlayFabIDsFromTwitchIDsRequest : PlayFabRequestCommon { /// @@ -6502,6 +6525,20 @@ public class StatisticValue } + public class SteamNamePlayFabIdPair + { + /// + /// Unique PlayFab identifier for a user, or null if no PlayFab account is linked to the Steam identifier. + /// + public string PlayFabId ; + + /// + /// Unique Steam identifier for a user, also known as Steam persona name. + /// + public string SteamName ; + + } + public class SteamPlayFabIdPair { /// diff --git a/PlayFabSDK/source/PlayFabErrors.cs b/PlayFabSDK/source/PlayFabErrors.cs index fa6c7d6b..1960bca9 100644 --- a/PlayFabSDK/source/PlayFabErrors.cs +++ b/PlayFabSDK/source/PlayFabErrors.cs @@ -596,6 +596,8 @@ public enum PlayFabErrorCode StatisticColumnLengthMismatch = 1593, InvalidExternalEntityId = 1594, UpdatingStatisticsUsingTransactionIdNotAvailableForFreeTier = 1595, + TransactionAlreadyApplied = 1596, + ReportDataNotRetrievedSuccessfully = 1597, MatchmakingEntityInvalid = 2001, MatchmakingPlayerAttributesInvalid = 2002, MatchmakingQueueNotFound = 2016, @@ -875,6 +877,8 @@ public enum PlayFabErrorCode GameSaveFileNotUploaded = 20308, GameSaveBadRequest = 20309, GameSaveOperationNotAllowed = 20310, + GameSaveDataStorageQuotaExceeded = 20311, + GameSaveNewerManifestExists = 20312, StateShareForbidden = 21000, StateShareTitleNotInFlight = 21001, StateShareStateNotFound = 21002, diff --git a/PlayFabSDK/source/PlayFabMultiplayerModels.cs b/PlayFabSDK/source/PlayFabMultiplayerModels.cs index 7430a7f9..de06bcc6 100644 --- a/PlayFabSDK/source/PlayFabMultiplayerModels.cs +++ b/PlayFabSDK/source/PlayFabMultiplayerModels.cs @@ -97,7 +97,9 @@ public enum AzureRegion CentralIndia, UaeNorth, UkSouth, - SwedenCentral + SwedenCentral, + CanadaCentral, + MexicoCentral } public enum AzureVmFamily diff --git a/PlayFabSDK/source/PlayFabSDK.csproj b/PlayFabSDK/source/PlayFabSDK.csproj index cab6227d..41a234d1 100644 --- a/PlayFabSDK/source/PlayFabSDK.csproj +++ b/PlayFabSDK/source/PlayFabSDK.csproj @@ -8,7 +8,7 @@ 512 PlayFabAllSDK - 1.192.241108 + 1.193.241122 PlayFab CSharp Sdk Microsoft Microsoft @@ -21,7 +21,7 @@ PlayFab PlayFabSDK PlayFab, Baas, Paas, JSON, REST, HTTP, SSL, API, cloud, liveops, game, gamedev, native - https://docs.microsoft.com/gaming/playfab/release-notes#241108 + https://docs.microsoft.com/gaming/playfab/release-notes#241122 en 1 1 diff --git a/PlayFabSDK/source/PlayFabServerAPI.cs b/PlayFabSDK/source/PlayFabServerAPI.cs index ff3dbb79..8ca6579c 100644 --- a/PlayFabSDK/source/PlayFabServerAPI.cs +++ b/PlayFabSDK/source/PlayFabServerAPI.cs @@ -1361,6 +1361,34 @@ public static async Task> GetPlay return new PlayFabResult { Result = result, CustomData = customData }; } + /// + /// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona + /// names. + /// + public static async Task> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary extraHeaders = null) + { + await new PlayFabUtil.SynchronizationContextRemover(); + + var requestContext = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer; + var requestSettings = PlayFabSettings.staticSettings; + if (requestSettings.DeveloperSecretKey == null) throw new PlayFabException(PlayFabExceptionCode.DeveloperKeyNotSet, "DeveloperSecretKey must be set in your local or global settings to call this method"); + + + var httpResult = await PlayFabHttp.DoPost("/Server/GetPlayFabIDsFromSteamNames", request, "X-SecretKey", requestSettings.DeveloperSecretKey, extraHeaders); + if (httpResult is PlayFabError) + { + var error = (PlayFabError)httpResult; + PlayFabSettings.GlobalErrorHandler?.Invoke(error); + return new PlayFabResult { Error = error, CustomData = customData }; + } + + var resultRawJson = (string)httpResult; + var resultData = PluginManager.GetPlugin(PluginContract.PlayFab_Serializer).DeserializeObject>(resultRawJson); + var result = resultData.data; + + return new PlayFabResult { Result = result, CustomData = customData }; + } + /// /// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for /// the user accounts, available as "_id" from the Twitch API methods (ex: diff --git a/PlayFabSDK/source/PlayFabServerInstanceAPI.cs b/PlayFabSDK/source/PlayFabServerInstanceAPI.cs index 40e17f81..150bb9d9 100644 --- a/PlayFabSDK/source/PlayFabServerInstanceAPI.cs +++ b/PlayFabSDK/source/PlayFabServerInstanceAPI.cs @@ -1334,6 +1334,33 @@ public async Task> GetPlayFabIDsF return new PlayFabResult { Result = result, CustomData = customData }; } + /// + /// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona + /// names. + /// + public async Task> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary extraHeaders = null) + { + await new PlayFabUtil.SynchronizationContextRemover(); + + var requestContext = request?.AuthenticationContext ?? authenticationContext; + var requestSettings = apiSettings ?? PlayFabSettings.staticSettings; + if (requestSettings.DeveloperSecretKey == null) throw new PlayFabException(PlayFabExceptionCode.DeveloperKeyNotSet, "DeveloperSecretKey must be set in your local or global settings to call this method"); + + var httpResult = await PlayFabHttp.DoPost("/Server/GetPlayFabIDsFromSteamNames", request, "X-SecretKey", requestSettings.DeveloperSecretKey, extraHeaders, requestSettings); + if (httpResult is PlayFabError) + { + var error = (PlayFabError)httpResult; + PlayFabSettings.GlobalErrorHandler?.Invoke(error); + return new PlayFabResult { Error = error, CustomData = customData }; + } + + var resultRawJson = (string)httpResult; + var resultData = PluginManager.GetPlugin(PluginContract.PlayFab_Serializer).DeserializeObject>(resultRawJson); + var result = resultData.data; + + return new PlayFabResult { Result = result, CustomData = customData }; + } + /// /// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for /// the user accounts, available as "_id" from the Twitch API methods (ex: diff --git a/PlayFabSDK/source/PlayFabServerModels.cs b/PlayFabSDK/source/PlayFabServerModels.cs index 49fc3550..ea49a33b 100644 --- a/PlayFabSDK/source/PlayFabServerModels.cs +++ b/PlayFabSDK/source/PlayFabServerModels.cs @@ -2135,6 +2135,8 @@ public enum GenericErrorCodes StatisticColumnLengthMismatch, InvalidExternalEntityId, UpdatingStatisticsUsingTransactionIdNotAvailableForFreeTier, + TransactionAlreadyApplied, + ReportDataNotRetrievedSuccessfully, MatchmakingEntityInvalid, MatchmakingPlayerAttributesInvalid, MatchmakingQueueNotFound, @@ -2414,6 +2416,8 @@ public enum GenericErrorCodes GameSaveFileNotUploaded, GameSaveBadRequest, GameSaveOperationNotAllowed, + GameSaveDataStorageQuotaExceeded, + GameSaveNewerManifestExists, StateShareForbidden, StateShareTitleNotInFlight, StateShareStateNotFound, @@ -3578,6 +3582,28 @@ public class GetPlayFabIDsFromSteamIDsResult : PlayFabResultCommon } + public class GetPlayFabIDsFromSteamNamesRequest : PlayFabRequestCommon + { + /// + /// Array of unique Steam identifiers for which the title needs to get PlayFab identifiers. The array cannot exceed 2,000 in + /// length. + /// + public List SteamNames ; + + } + + /// + /// For Steam identifiers which have not been linked to PlayFab accounts, null will be returned. + /// + public class GetPlayFabIDsFromSteamNamesResult : PlayFabResultCommon + { + /// + /// Mapping of Steam identifiers to PlayFab identifiers. + /// + public List Data ; + + } + public class GetPlayFabIDsFromTwitchIDsRequest : PlayFabRequestCommon { /// @@ -6524,6 +6550,20 @@ public class StatisticValue } + public class SteamNamePlayFabIdPair + { + /// + /// Unique PlayFab identifier for a user, or null if no PlayFab account is linked to the Steam identifier. + /// + public string PlayFabId ; + + /// + /// Unique Steam identifier for a user, also known as Steam persona name. + /// + public string SteamName ; + + } + public class SteamPlayFabIdPair { /// diff --git a/PlayFabSDK/source/PlayFabSettings.cs b/PlayFabSDK/source/PlayFabSettings.cs index 9403f478..f0f2e9f5 100644 --- a/PlayFabSDK/source/PlayFabSettings.cs +++ b/PlayFabSDK/source/PlayFabSettings.cs @@ -6,9 +6,9 @@ namespace PlayFab { public class PlayFabSettings { - public const string SdkVersion = "1.192.241108"; - public const string BuildIdentifier = "adobuild_csharpsdk_117"; - public const string SdkVersionString = "CSharpSDK-1.192.241108"; + public const string SdkVersion = "1.193.241122"; + public const string BuildIdentifier = "adobuild_csharpsdk_118"; + public const string SdkVersionString = "CSharpSDK-1.193.241122"; /// This is only for customers running a private cluster. Generally you shouldn't touch this public static string DefaultProductionEnvironmentUrl = "playfabapi.com"; diff --git a/Plugins/CloudScript/source/PlayFabCloudScriptPlugin.csproj b/Plugins/CloudScript/source/PlayFabCloudScriptPlugin.csproj index 040ca96b..a62953e2 100644 --- a/Plugins/CloudScript/source/PlayFabCloudScriptPlugin.csproj +++ b/Plugins/CloudScript/source/PlayFabCloudScriptPlugin.csproj @@ -8,7 +8,7 @@ 512 PlayFabCloudScriptPlugin - 1.192.241108-alpha + 1.193.241122-alpha PlayFab CSharp CloudScript Plugin Microsoft Microsoft @@ -21,7 +21,7 @@ PlayFabCloudScriptPlugin Copyright 2024 PlayFab, Baas, Paas, JSON, REST, HTTP, SSL, API, cloud, liveops, game, gamedev, native - https://docs.microsoft.com/gaming/playfab/release-notes#241108 + https://docs.microsoft.com/gaming/playfab/release-notes#241122 en 1 1 @@ -45,7 +45,7 @@ - + diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabAdminModels.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabAdminModels.cs index 6d2ecb6a..d6db1726 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabAdminModels.cs +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabAdminModels.cs @@ -2814,6 +2814,8 @@ public enum GenericErrorCodes StatisticColumnLengthMismatch, InvalidExternalEntityId, UpdatingStatisticsUsingTransactionIdNotAvailableForFreeTier, + TransactionAlreadyApplied, + ReportDataNotRetrievedSuccessfully, MatchmakingEntityInvalid, MatchmakingPlayerAttributesInvalid, MatchmakingQueueNotFound, @@ -3093,6 +3095,8 @@ public enum GenericErrorCodes GameSaveFileNotUploaded, GameSaveBadRequest, GameSaveOperationNotAllowed, + GameSaveDataStorageQuotaExceeded, + GameSaveNewerManifestExists, StateShareForbidden, StateShareTitleNotInFlight, StateShareStateNotFound, diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientAPI.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientAPI.cs index 34ae7d22..615ba809 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientAPI.cs +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientAPI.cs @@ -1594,6 +1594,34 @@ public static async Task> GetPlay return new PlayFabResult { Result = result, CustomData = customData }; } + /// + /// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona + /// names. + /// + public static async Task> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary extraHeaders = null) + { + await new PlayFabUtil.SynchronizationContextRemover(); + + var requestContext = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer; + var requestSettings = PlayFabSettings.staticSettings; + if (requestContext.ClientSessionTicket == null) throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method"); + + + var httpResult = await PlayFabHttp.DoPost("/Client/GetPlayFabIDsFromSteamNames", request, "X-Authorization", requestContext.ClientSessionTicket, extraHeaders); + if (httpResult is PlayFabError) + { + var error = (PlayFabError)httpResult; + PlayFabSettings.GlobalErrorHandler?.Invoke(error); + return new PlayFabResult { Error = error, CustomData = customData }; + } + + var resultRawJson = (string)httpResult; + var resultData = PluginManager.GetPlugin(PluginContract.PlayFab_Serializer).DeserializeObject>(resultRawJson); + var result = resultData.data; + + return new PlayFabResult { Result = result, CustomData = customData }; + } + /// /// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for /// the user accounts, available as "_id" from the Twitch API methods (ex: diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientInstanceAPI.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientInstanceAPI.cs index 2b0da05a..43c3e9ff 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientInstanceAPI.cs +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientInstanceAPI.cs @@ -1563,6 +1563,33 @@ public async Task> GetPlayFabIDsF return new PlayFabResult { Result = result, CustomData = customData }; } + /// + /// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona + /// names. + /// + public async Task> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary extraHeaders = null) + { + await new PlayFabUtil.SynchronizationContextRemover(); + + var requestContext = request?.AuthenticationContext ?? authenticationContext; + var requestSettings = apiSettings ?? PlayFabSettings.staticSettings; + if (requestContext.ClientSessionTicket == null) throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method"); + + var httpResult = await PlayFabHttp.DoPost("/Client/GetPlayFabIDsFromSteamNames", request, "X-Authorization", requestContext.ClientSessionTicket, extraHeaders, requestSettings); + if (httpResult is PlayFabError) + { + var error = (PlayFabError)httpResult; + PlayFabSettings.GlobalErrorHandler?.Invoke(error); + return new PlayFabResult { Error = error, CustomData = customData }; + } + + var resultRawJson = (string)httpResult; + var resultData = PluginManager.GetPlugin(PluginContract.PlayFab_Serializer).DeserializeObject>(resultRawJson); + var result = resultData.data; + + return new PlayFabResult { Result = result, CustomData = customData }; + } + /// /// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for /// the user accounts, available as "_id" from the Twitch API methods (ex: diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientModels.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientModels.cs index 621fbe22..aa27cc70 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientModels.cs +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabClientModels.cs @@ -2933,6 +2933,29 @@ public class GetPlayFabIDsFromSteamIDsResult : PlayFabResultCommon } + public class GetPlayFabIDsFromSteamNamesRequest : PlayFabRequestCommon + { + /// + /// Array of unique Steam identifiers for which the title needs to get PlayFab identifiers. The array cannot exceed 2,000 in + /// length. + /// + public List SteamNames ; + + } + + /// + /// For Steam identifiers which have not been linked to PlayFab accounts, or if the user has not logged in recently, null + /// will be returned. + /// + public class GetPlayFabIDsFromSteamNamesResult : PlayFabResultCommon + { + /// + /// Mapping of Steam identifiers to PlayFab identifiers. + /// + public List Data ; + + } + public class GetPlayFabIDsFromTwitchIDsRequest : PlayFabRequestCommon { /// @@ -6502,6 +6525,20 @@ public class StatisticValue } + public class SteamNamePlayFabIdPair + { + /// + /// Unique PlayFab identifier for a user, or null if no PlayFab account is linked to the Steam identifier. + /// + public string PlayFabId ; + + /// + /// Unique Steam identifier for a user, also known as Steam persona name. + /// + public string SteamName ; + + } + public class SteamPlayFabIdPair { /// diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabErrors.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabErrors.cs index fa6c7d6b..1960bca9 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabErrors.cs +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabErrors.cs @@ -596,6 +596,8 @@ public enum PlayFabErrorCode StatisticColumnLengthMismatch = 1593, InvalidExternalEntityId = 1594, UpdatingStatisticsUsingTransactionIdNotAvailableForFreeTier = 1595, + TransactionAlreadyApplied = 1596, + ReportDataNotRetrievedSuccessfully = 1597, MatchmakingEntityInvalid = 2001, MatchmakingPlayerAttributesInvalid = 2002, MatchmakingQueueNotFound = 2016, @@ -875,6 +877,8 @@ public enum PlayFabErrorCode GameSaveFileNotUploaded = 20308, GameSaveBadRequest = 20309, GameSaveOperationNotAllowed = 20310, + GameSaveDataStorageQuotaExceeded = 20311, + GameSaveNewerManifestExists = 20312, StateShareForbidden = 21000, StateShareTitleNotInFlight = 21001, StateShareStateNotFound = 21002, diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerModels.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerModels.cs index 7430a7f9..de06bcc6 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerModels.cs +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerModels.cs @@ -97,7 +97,9 @@ public enum AzureRegion CentralIndia, UaeNorth, UkSouth, - SwedenCentral + SwedenCentral, + CanadaCentral, + MexicoCentral } public enum AzureVmFamily diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSDK.csproj b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSDK.csproj index cab6227d..41a234d1 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSDK.csproj +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSDK.csproj @@ -8,7 +8,7 @@ 512 PlayFabAllSDK - 1.192.241108 + 1.193.241122 PlayFab CSharp Sdk Microsoft Microsoft @@ -21,7 +21,7 @@ PlayFab PlayFabSDK PlayFab, Baas, Paas, JSON, REST, HTTP, SSL, API, cloud, liveops, game, gamedev, native - https://docs.microsoft.com/gaming/playfab/release-notes#241108 + https://docs.microsoft.com/gaming/playfab/release-notes#241122 en 1 1 diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerAPI.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerAPI.cs index ff3dbb79..8ca6579c 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerAPI.cs +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerAPI.cs @@ -1361,6 +1361,34 @@ public static async Task> GetPlay return new PlayFabResult { Result = result, CustomData = customData }; } + /// + /// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona + /// names. + /// + public static async Task> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary extraHeaders = null) + { + await new PlayFabUtil.SynchronizationContextRemover(); + + var requestContext = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer; + var requestSettings = PlayFabSettings.staticSettings; + if (requestSettings.DeveloperSecretKey == null) throw new PlayFabException(PlayFabExceptionCode.DeveloperKeyNotSet, "DeveloperSecretKey must be set in your local or global settings to call this method"); + + + var httpResult = await PlayFabHttp.DoPost("/Server/GetPlayFabIDsFromSteamNames", request, "X-SecretKey", requestSettings.DeveloperSecretKey, extraHeaders); + if (httpResult is PlayFabError) + { + var error = (PlayFabError)httpResult; + PlayFabSettings.GlobalErrorHandler?.Invoke(error); + return new PlayFabResult { Error = error, CustomData = customData }; + } + + var resultRawJson = (string)httpResult; + var resultData = PluginManager.GetPlugin(PluginContract.PlayFab_Serializer).DeserializeObject>(resultRawJson); + var result = resultData.data; + + return new PlayFabResult { Result = result, CustomData = customData }; + } + /// /// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for /// the user accounts, available as "_id" from the Twitch API methods (ex: diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerInstanceAPI.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerInstanceAPI.cs index 40e17f81..150bb9d9 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerInstanceAPI.cs +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerInstanceAPI.cs @@ -1334,6 +1334,33 @@ public async Task> GetPlayFabIDsF return new PlayFabResult { Result = result, CustomData = customData }; } + /// + /// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona + /// names. + /// + public async Task> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary extraHeaders = null) + { + await new PlayFabUtil.SynchronizationContextRemover(); + + var requestContext = request?.AuthenticationContext ?? authenticationContext; + var requestSettings = apiSettings ?? PlayFabSettings.staticSettings; + if (requestSettings.DeveloperSecretKey == null) throw new PlayFabException(PlayFabExceptionCode.DeveloperKeyNotSet, "DeveloperSecretKey must be set in your local or global settings to call this method"); + + var httpResult = await PlayFabHttp.DoPost("/Server/GetPlayFabIDsFromSteamNames", request, "X-SecretKey", requestSettings.DeveloperSecretKey, extraHeaders, requestSettings); + if (httpResult is PlayFabError) + { + var error = (PlayFabError)httpResult; + PlayFabSettings.GlobalErrorHandler?.Invoke(error); + return new PlayFabResult { Error = error, CustomData = customData }; + } + + var resultRawJson = (string)httpResult; + var resultData = PluginManager.GetPlugin(PluginContract.PlayFab_Serializer).DeserializeObject>(resultRawJson); + var result = resultData.data; + + return new PlayFabResult { Result = result, CustomData = customData }; + } + /// /// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for /// the user accounts, available as "_id" from the Twitch API methods (ex: diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerModels.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerModels.cs index 49fc3550..ea49a33b 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerModels.cs +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerModels.cs @@ -2135,6 +2135,8 @@ public enum GenericErrorCodes StatisticColumnLengthMismatch, InvalidExternalEntityId, UpdatingStatisticsUsingTransactionIdNotAvailableForFreeTier, + TransactionAlreadyApplied, + ReportDataNotRetrievedSuccessfully, MatchmakingEntityInvalid, MatchmakingPlayerAttributesInvalid, MatchmakingQueueNotFound, @@ -2414,6 +2416,8 @@ public enum GenericErrorCodes GameSaveFileNotUploaded, GameSaveBadRequest, GameSaveOperationNotAllowed, + GameSaveDataStorageQuotaExceeded, + GameSaveNewerManifestExists, StateShareForbidden, StateShareTitleNotInFlight, StateShareStateNotFound, @@ -3578,6 +3582,28 @@ public class GetPlayFabIDsFromSteamIDsResult : PlayFabResultCommon } + public class GetPlayFabIDsFromSteamNamesRequest : PlayFabRequestCommon + { + /// + /// Array of unique Steam identifiers for which the title needs to get PlayFab identifiers. The array cannot exceed 2,000 in + /// length. + /// + public List SteamNames ; + + } + + /// + /// For Steam identifiers which have not been linked to PlayFab accounts, null will be returned. + /// + public class GetPlayFabIDsFromSteamNamesResult : PlayFabResultCommon + { + /// + /// Mapping of Steam identifiers to PlayFab identifiers. + /// + public List Data ; + + } + public class GetPlayFabIDsFromTwitchIDsRequest : PlayFabRequestCommon { /// @@ -6524,6 +6550,20 @@ public class StatisticValue } + public class SteamNamePlayFabIdPair + { + /// + /// Unique PlayFab identifier for a user, or null if no PlayFab account is linked to the Steam identifier. + /// + public string PlayFabId ; + + /// + /// Unique Steam identifier for a user, also known as Steam persona name. + /// + public string SteamName ; + + } + public class SteamPlayFabIdPair { /// diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSettings.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSettings.cs index 9403f478..f0f2e9f5 100644 --- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSettings.cs +++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSettings.cs @@ -6,9 +6,9 @@ namespace PlayFab { public class PlayFabSettings { - public const string SdkVersion = "1.192.241108"; - public const string BuildIdentifier = "adobuild_csharpsdk_117"; - public const string SdkVersionString = "CSharpSDK-1.192.241108"; + public const string SdkVersion = "1.193.241122"; + public const string BuildIdentifier = "adobuild_csharpsdk_118"; + public const string SdkVersionString = "CSharpSDK-1.193.241122"; /// This is only for customers running a private cluster. Generally you shouldn't touch this public static string DefaultProductionEnvironmentUrl = "playfabapi.com";