Skip to content

Commit d0e3cd7

Browse files
PlayFab SDK TeamPlayFab SDK Team
PlayFab SDK Team
authored and
PlayFab SDK Team
committed
https://docs.microsoft.com/en-us/gaming/playfab/release-notes/#241122
2 parents 2def3d0 + a4b78b2 commit d0e3cd7

23 files changed

+409
-15
lines changed

PlayFabSDK/source/PlayFabAdminModels.cs

+4
Original file line numberDiff line numberDiff line change
@@ -2814,6 +2814,8 @@ public enum GenericErrorCodes
28142814
StatisticColumnLengthMismatch,
28152815
InvalidExternalEntityId,
28162816
UpdatingStatisticsUsingTransactionIdNotAvailableForFreeTier,
2817+
TransactionAlreadyApplied,
2818+
ReportDataNotRetrievedSuccessfully,
28172819
MatchmakingEntityInvalid,
28182820
MatchmakingPlayerAttributesInvalid,
28192821
MatchmakingQueueNotFound,
@@ -3093,6 +3095,8 @@ public enum GenericErrorCodes
30933095
GameSaveFileNotUploaded,
30943096
GameSaveBadRequest,
30953097
GameSaveOperationNotAllowed,
3098+
GameSaveDataStorageQuotaExceeded,
3099+
GameSaveNewerManifestExists,
30963100
StateShareForbidden,
30973101
StateShareTitleNotInFlight,
30983102
StateShareStateNotFound,

PlayFabSDK/source/PlayFabClientAPI.cs

+28
Original file line numberDiff line numberDiff line change
@@ -1594,6 +1594,34 @@ public static async Task<PlayFabResult<GetPlayFabIDsFromSteamIDsResult>> GetPlay
15941594
return new PlayFabResult<GetPlayFabIDsFromSteamIDsResult> { Result = result, CustomData = customData };
15951595
}
15961596

1597+
/// <summary>
1598+
/// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona
1599+
/// names.
1600+
/// </summary>
1601+
public static async Task<PlayFabResult<GetPlayFabIDsFromSteamNamesResult>> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary<string, string> extraHeaders = null)
1602+
{
1603+
await new PlayFabUtil.SynchronizationContextRemover();
1604+
1605+
var requestContext = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer;
1606+
var requestSettings = PlayFabSettings.staticSettings;
1607+
if (requestContext.ClientSessionTicket == null) throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method");
1608+
1609+
1610+
var httpResult = await PlayFabHttp.DoPost("/Client/GetPlayFabIDsFromSteamNames", request, "X-Authorization", requestContext.ClientSessionTicket, extraHeaders);
1611+
if (httpResult is PlayFabError)
1612+
{
1613+
var error = (PlayFabError)httpResult;
1614+
PlayFabSettings.GlobalErrorHandler?.Invoke(error);
1615+
return new PlayFabResult<GetPlayFabIDsFromSteamNamesResult> { Error = error, CustomData = customData };
1616+
}
1617+
1618+
var resultRawJson = (string)httpResult;
1619+
var resultData = PluginManager.GetPlugin<ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject<PlayFabJsonSuccess<GetPlayFabIDsFromSteamNamesResult>>(resultRawJson);
1620+
var result = resultData.data;
1621+
1622+
return new PlayFabResult<GetPlayFabIDsFromSteamNamesResult> { Result = result, CustomData = customData };
1623+
}
1624+
15971625
/// <summary>
15981626
/// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for
15991627
/// the user accounts, available as "_id" from the Twitch API methods (ex:

PlayFabSDK/source/PlayFabClientInstanceAPI.cs

+27
Original file line numberDiff line numberDiff line change
@@ -1563,6 +1563,33 @@ public async Task<PlayFabResult<GetPlayFabIDsFromSteamIDsResult>> GetPlayFabIDsF
15631563
return new PlayFabResult<GetPlayFabIDsFromSteamIDsResult> { Result = result, CustomData = customData };
15641564
}
15651565

1566+
/// <summary>
1567+
/// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona
1568+
/// names.
1569+
/// </summary>
1570+
public async Task<PlayFabResult<GetPlayFabIDsFromSteamNamesResult>> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary<string, string> extraHeaders = null)
1571+
{
1572+
await new PlayFabUtil.SynchronizationContextRemover();
1573+
1574+
var requestContext = request?.AuthenticationContext ?? authenticationContext;
1575+
var requestSettings = apiSettings ?? PlayFabSettings.staticSettings;
1576+
if (requestContext.ClientSessionTicket == null) throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method");
1577+
1578+
var httpResult = await PlayFabHttp.DoPost("/Client/GetPlayFabIDsFromSteamNames", request, "X-Authorization", requestContext.ClientSessionTicket, extraHeaders, requestSettings);
1579+
if (httpResult is PlayFabError)
1580+
{
1581+
var error = (PlayFabError)httpResult;
1582+
PlayFabSettings.GlobalErrorHandler?.Invoke(error);
1583+
return new PlayFabResult<GetPlayFabIDsFromSteamNamesResult> { Error = error, CustomData = customData };
1584+
}
1585+
1586+
var resultRawJson = (string)httpResult;
1587+
var resultData = PluginManager.GetPlugin<ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject<PlayFabJsonSuccess<GetPlayFabIDsFromSteamNamesResult>>(resultRawJson);
1588+
var result = resultData.data;
1589+
1590+
return new PlayFabResult<GetPlayFabIDsFromSteamNamesResult> { Result = result, CustomData = customData };
1591+
}
1592+
15661593
/// <summary>
15671594
/// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for
15681595
/// the user accounts, available as "_id" from the Twitch API methods (ex:

PlayFabSDK/source/PlayFabClientModels.cs

+37
Original file line numberDiff line numberDiff line change
@@ -2933,6 +2933,29 @@ public class GetPlayFabIDsFromSteamIDsResult : PlayFabResultCommon
29332933

29342934
}
29352935

2936+
public class GetPlayFabIDsFromSteamNamesRequest : PlayFabRequestCommon
2937+
{
2938+
/// <summary>
2939+
/// Array of unique Steam identifiers for which the title needs to get PlayFab identifiers. The array cannot exceed 2,000 in
2940+
/// length.
2941+
/// </summary>
2942+
public List<string> SteamNames ;
2943+
2944+
}
2945+
2946+
/// <summary>
2947+
/// For Steam identifiers which have not been linked to PlayFab accounts, or if the user has not logged in recently, null
2948+
/// will be returned.
2949+
/// </summary>
2950+
public class GetPlayFabIDsFromSteamNamesResult : PlayFabResultCommon
2951+
{
2952+
/// <summary>
2953+
/// Mapping of Steam identifiers to PlayFab identifiers.
2954+
/// </summary>
2955+
public List<SteamNamePlayFabIdPair> Data ;
2956+
2957+
}
2958+
29362959
public class GetPlayFabIDsFromTwitchIDsRequest : PlayFabRequestCommon
29372960
{
29382961
/// <summary>
@@ -6502,6 +6525,20 @@ public class StatisticValue
65026525

65036526
}
65046527

6528+
public class SteamNamePlayFabIdPair
6529+
{
6530+
/// <summary>
6531+
/// Unique PlayFab identifier for a user, or null if no PlayFab account is linked to the Steam identifier.
6532+
/// </summary>
6533+
public string PlayFabId ;
6534+
6535+
/// <summary>
6536+
/// Unique Steam identifier for a user, also known as Steam persona name.
6537+
/// </summary>
6538+
public string SteamName ;
6539+
6540+
}
6541+
65056542
public class SteamPlayFabIdPair
65066543
{
65076544
/// <summary>

PlayFabSDK/source/PlayFabErrors.cs

+4
Original file line numberDiff line numberDiff line change
@@ -596,6 +596,8 @@ public enum PlayFabErrorCode
596596
StatisticColumnLengthMismatch = 1593,
597597
InvalidExternalEntityId = 1594,
598598
UpdatingStatisticsUsingTransactionIdNotAvailableForFreeTier = 1595,
599+
TransactionAlreadyApplied = 1596,
600+
ReportDataNotRetrievedSuccessfully = 1597,
599601
MatchmakingEntityInvalid = 2001,
600602
MatchmakingPlayerAttributesInvalid = 2002,
601603
MatchmakingQueueNotFound = 2016,
@@ -875,6 +877,8 @@ public enum PlayFabErrorCode
875877
GameSaveFileNotUploaded = 20308,
876878
GameSaveBadRequest = 20309,
877879
GameSaveOperationNotAllowed = 20310,
880+
GameSaveDataStorageQuotaExceeded = 20311,
881+
GameSaveNewerManifestExists = 20312,
878882
StateShareForbidden = 21000,
879883
StateShareTitleNotInFlight = 21001,
880884
StateShareStateNotFound = 21002,

PlayFabSDK/source/PlayFabMultiplayerModels.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ public enum AzureRegion
9797
CentralIndia,
9898
UaeNorth,
9999
UkSouth,
100-
SwedenCentral
100+
SwedenCentral,
101+
CanadaCentral,
102+
MexicoCentral
101103
}
102104

103105
public enum AzureVmFamily

PlayFabSDK/source/PlayFabSDK.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<FileAlignment>512</FileAlignment>
99

1010
<PackageId>PlayFabAllSDK</PackageId>
11-
<Version>1.192.241108</Version>
11+
<Version>1.193.241122</Version>
1212
<Title>PlayFab CSharp Sdk</Title>
1313
<Authors>Microsoft</Authors>
1414
<Owners>Microsoft</Owners>
@@ -21,7 +21,7 @@
2121
<Company>PlayFab</Company>
2222
<Product>PlayFabSDK</Product>
2323
<PackageTags>PlayFab, Baas, Paas, JSON, REST, HTTP, SSL, API, cloud, liveops, game, gamedev, native</PackageTags>
24-
<PackageReleaseNotes>https://docs.microsoft.com/gaming/playfab/release-notes#241108</PackageReleaseNotes>
24+
<PackageReleaseNotes>https://docs.microsoft.com/gaming/playfab/release-notes#241122</PackageReleaseNotes>
2525
<NeutralLanguage>en</NeutralLanguage>
2626
<AssemblyVersion>1</AssemblyVersion>
2727
<FileVersion>1</FileVersion>

PlayFabSDK/source/PlayFabServerAPI.cs

+28
Original file line numberDiff line numberDiff line change
@@ -1361,6 +1361,34 @@ public static async Task<PlayFabResult<GetPlayFabIDsFromSteamIDsResult>> GetPlay
13611361
return new PlayFabResult<GetPlayFabIDsFromSteamIDsResult> { Result = result, CustomData = customData };
13621362
}
13631363

1364+
/// <summary>
1365+
/// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona
1366+
/// names.
1367+
/// </summary>
1368+
public static async Task<PlayFabResult<GetPlayFabIDsFromSteamNamesResult>> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary<string, string> extraHeaders = null)
1369+
{
1370+
await new PlayFabUtil.SynchronizationContextRemover();
1371+
1372+
var requestContext = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer;
1373+
var requestSettings = PlayFabSettings.staticSettings;
1374+
if (requestSettings.DeveloperSecretKey == null) throw new PlayFabException(PlayFabExceptionCode.DeveloperKeyNotSet, "DeveloperSecretKey must be set in your local or global settings to call this method");
1375+
1376+
1377+
var httpResult = await PlayFabHttp.DoPost("/Server/GetPlayFabIDsFromSteamNames", request, "X-SecretKey", requestSettings.DeveloperSecretKey, extraHeaders);
1378+
if (httpResult is PlayFabError)
1379+
{
1380+
var error = (PlayFabError)httpResult;
1381+
PlayFabSettings.GlobalErrorHandler?.Invoke(error);
1382+
return new PlayFabResult<GetPlayFabIDsFromSteamNamesResult> { Error = error, CustomData = customData };
1383+
}
1384+
1385+
var resultRawJson = (string)httpResult;
1386+
var resultData = PluginManager.GetPlugin<ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject<PlayFabJsonSuccess<GetPlayFabIDsFromSteamNamesResult>>(resultRawJson);
1387+
var result = resultData.data;
1388+
1389+
return new PlayFabResult<GetPlayFabIDsFromSteamNamesResult> { Result = result, CustomData = customData };
1390+
}
1391+
13641392
/// <summary>
13651393
/// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for
13661394
/// the user accounts, available as "_id" from the Twitch API methods (ex:

PlayFabSDK/source/PlayFabServerInstanceAPI.cs

+27
Original file line numberDiff line numberDiff line change
@@ -1334,6 +1334,33 @@ public async Task<PlayFabResult<GetPlayFabIDsFromSteamIDsResult>> GetPlayFabIDsF
13341334
return new PlayFabResult<GetPlayFabIDsFromSteamIDsResult> { Result = result, CustomData = customData };
13351335
}
13361336

1337+
/// <summary>
1338+
/// Retrieves the unique PlayFab identifiers for the given set of Steam identifiers. The Steam identifiers are persona
1339+
/// names.
1340+
/// </summary>
1341+
public async Task<PlayFabResult<GetPlayFabIDsFromSteamNamesResult>> GetPlayFabIDsFromSteamNamesAsync(GetPlayFabIDsFromSteamNamesRequest request, object customData = null, Dictionary<string, string> extraHeaders = null)
1342+
{
1343+
await new PlayFabUtil.SynchronizationContextRemover();
1344+
1345+
var requestContext = request?.AuthenticationContext ?? authenticationContext;
1346+
var requestSettings = apiSettings ?? PlayFabSettings.staticSettings;
1347+
if (requestSettings.DeveloperSecretKey == null) throw new PlayFabException(PlayFabExceptionCode.DeveloperKeyNotSet, "DeveloperSecretKey must be set in your local or global settings to call this method");
1348+
1349+
var httpResult = await PlayFabHttp.DoPost("/Server/GetPlayFabIDsFromSteamNames", request, "X-SecretKey", requestSettings.DeveloperSecretKey, extraHeaders, requestSettings);
1350+
if (httpResult is PlayFabError)
1351+
{
1352+
var error = (PlayFabError)httpResult;
1353+
PlayFabSettings.GlobalErrorHandler?.Invoke(error);
1354+
return new PlayFabResult<GetPlayFabIDsFromSteamNamesResult> { Error = error, CustomData = customData };
1355+
}
1356+
1357+
var resultRawJson = (string)httpResult;
1358+
var resultData = PluginManager.GetPlugin<ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject<PlayFabJsonSuccess<GetPlayFabIDsFromSteamNamesResult>>(resultRawJson);
1359+
var result = resultData.data;
1360+
1361+
return new PlayFabResult<GetPlayFabIDsFromSteamNamesResult> { Result = result, CustomData = customData };
1362+
}
1363+
13371364
/// <summary>
13381365
/// Retrieves the unique PlayFab identifiers for the given set of Twitch identifiers. The Twitch identifiers are the IDs for
13391366
/// the user accounts, available as "_id" from the Twitch API methods (ex:

PlayFabSDK/source/PlayFabServerModels.cs

+40
Original file line numberDiff line numberDiff line change
@@ -2135,6 +2135,8 @@ public enum GenericErrorCodes
21352135
StatisticColumnLengthMismatch,
21362136
InvalidExternalEntityId,
21372137
UpdatingStatisticsUsingTransactionIdNotAvailableForFreeTier,
2138+
TransactionAlreadyApplied,
2139+
ReportDataNotRetrievedSuccessfully,
21382140
MatchmakingEntityInvalid,
21392141
MatchmakingPlayerAttributesInvalid,
21402142
MatchmakingQueueNotFound,
@@ -2414,6 +2416,8 @@ public enum GenericErrorCodes
24142416
GameSaveFileNotUploaded,
24152417
GameSaveBadRequest,
24162418
GameSaveOperationNotAllowed,
2419+
GameSaveDataStorageQuotaExceeded,
2420+
GameSaveNewerManifestExists,
24172421
StateShareForbidden,
24182422
StateShareTitleNotInFlight,
24192423
StateShareStateNotFound,
@@ -3578,6 +3582,28 @@ public class GetPlayFabIDsFromSteamIDsResult : PlayFabResultCommon
35783582

35793583
}
35803584

3585+
public class GetPlayFabIDsFromSteamNamesRequest : PlayFabRequestCommon
3586+
{
3587+
/// <summary>
3588+
/// Array of unique Steam identifiers for which the title needs to get PlayFab identifiers. The array cannot exceed 2,000 in
3589+
/// length.
3590+
/// </summary>
3591+
public List<string> SteamNames ;
3592+
3593+
}
3594+
3595+
/// <summary>
3596+
/// For Steam identifiers which have not been linked to PlayFab accounts, null will be returned.
3597+
/// </summary>
3598+
public class GetPlayFabIDsFromSteamNamesResult : PlayFabResultCommon
3599+
{
3600+
/// <summary>
3601+
/// Mapping of Steam identifiers to PlayFab identifiers.
3602+
/// </summary>
3603+
public List<SteamNamePlayFabIdPair> Data ;
3604+
3605+
}
3606+
35813607
public class GetPlayFabIDsFromTwitchIDsRequest : PlayFabRequestCommon
35823608
{
35833609
/// <summary>
@@ -6524,6 +6550,20 @@ public class StatisticValue
65246550

65256551
}
65266552

6553+
public class SteamNamePlayFabIdPair
6554+
{
6555+
/// <summary>
6556+
/// Unique PlayFab identifier for a user, or null if no PlayFab account is linked to the Steam identifier.
6557+
/// </summary>
6558+
public string PlayFabId ;
6559+
6560+
/// <summary>
6561+
/// Unique Steam identifier for a user, also known as Steam persona name.
6562+
/// </summary>
6563+
public string SteamName ;
6564+
6565+
}
6566+
65276567
public class SteamPlayFabIdPair
65286568
{
65296569
/// <summary>

PlayFabSDK/source/PlayFabSettings.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ namespace PlayFab
66
{
77
public class PlayFabSettings
88
{
9-
public const string SdkVersion = "1.192.241108";
10-
public const string BuildIdentifier = "adobuild_csharpsdk_117";
11-
public const string SdkVersionString = "CSharpSDK-1.192.241108";
9+
public const string SdkVersion = "1.193.241122";
10+
public const string BuildIdentifier = "adobuild_csharpsdk_118";
11+
public const string SdkVersionString = "CSharpSDK-1.193.241122";
1212
/// <summary> This is only for customers running a private cluster. Generally you shouldn't touch this </summary>
1313
public static string DefaultProductionEnvironmentUrl = "playfabapi.com";
1414

Plugins/CloudScript/source/PlayFabCloudScriptPlugin.csproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<FileAlignment>512</FileAlignment>
99

1010
<PackageId>PlayFabCloudScriptPlugin</PackageId>
11-
<Version>1.192.241108-alpha</Version>
11+
<Version>1.193.241122-alpha</Version>
1212
<Title>PlayFab CSharp CloudScript Plugin</Title>
1313
<Authors>Microsoft</Authors>
1414
<Owners>Microsoft</Owners>
@@ -21,7 +21,7 @@
2121
<Product>PlayFabCloudScriptPlugin</Product>
2222
<Copyright>Copyright 2024</Copyright>
2323
<PackageTags>PlayFab, Baas, Paas, JSON, REST, HTTP, SSL, API, cloud, liveops, game, gamedev, native</PackageTags>
24-
<PackageReleaseNotes>https://docs.microsoft.com/gaming/playfab/release-notes#241108</PackageReleaseNotes>
24+
<PackageReleaseNotes>https://docs.microsoft.com/gaming/playfab/release-notes#241122</PackageReleaseNotes>
2525
<NeutralLanguage>en</NeutralLanguage>
2626
<AssemblyVersion>1</AssemblyVersion>
2727
<FileVersion>1</FileVersion>
@@ -45,7 +45,7 @@
4545
</PropertyGroup>
4646

4747
<ItemGroup>
48-
<PackageReference Include="PlayFabAllSDK" Version="1.192.241108" />
48+
<PackageReference Include="PlayFabAllSDK" Version="1.193.241122" />
4949
</ItemGroup>
5050

5151
</Project>

XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabAdminModels.cs

+4
Original file line numberDiff line numberDiff line change
@@ -2814,6 +2814,8 @@ public enum GenericErrorCodes
28142814
StatisticColumnLengthMismatch,
28152815
InvalidExternalEntityId,
28162816
UpdatingStatisticsUsingTransactionIdNotAvailableForFreeTier,
2817+
TransactionAlreadyApplied,
2818+
ReportDataNotRetrievedSuccessfully,
28172819
MatchmakingEntityInvalid,
28182820
MatchmakingPlayerAttributesInvalid,
28192821
MatchmakingQueueNotFound,
@@ -3093,6 +3095,8 @@ public enum GenericErrorCodes
30933095
GameSaveFileNotUploaded,
30943096
GameSaveBadRequest,
30953097
GameSaveOperationNotAllowed,
3098+
GameSaveDataStorageQuotaExceeded,
3099+
GameSaveNewerManifestExists,
30963100
StateShareForbidden,
30973101
StateShareTitleNotInFlight,
30983102
StateShareStateNotFound,

0 commit comments

Comments
 (0)