diff --git a/PlayFabSDK/source/PlayFabAdminModels.cs b/PlayFabSDK/source/PlayFabAdminModels.cs
index 6f236ece..ef600f16 100644
--- a/PlayFabSDK/source/PlayFabAdminModels.cs
+++ b/PlayFabSDK/source/PlayFabAdminModels.cs
@@ -21,12 +21,64 @@ public class AbortTaskInstanceRequest : PlayFabRequestCommon
}
+ ///
+ /// The work to be performed on each entity which can only be of one type.
+ ///
+ public class Action
+ {
+ ///
+ /// Action content to ban player
+ ///
+ public BanPlayerContent BanPlayerContent ;
+
+ ///
+ /// Action content to delete player
+ ///
+ public DeletePlayerContent DeletePlayerContent ;
+
+ ///
+ /// Action content to execute cloud script
+ ///
+ public ExecuteCloudScriptContent ExecuteCloudScriptContent ;
+
+ ///
+ /// Action content to execute azure function
+ ///
+ public ExecuteFunctionContent ExecuteFunctionContent ;
+
+ ///
+ /// Action content to grant item
+ ///
+ public GrantItemContent GrantItemContent ;
+
+ ///
+ /// Action content to grant virtual currency
+ ///
+ public GrantVirtualCurrencyContent GrantVirtualCurrencyContent ;
+
+ ///
+ /// Action content to increment player statistic
+ ///
+ public IncrementPlayerStatisticContent IncrementPlayerStatisticContent ;
+
+ ///
+ /// Action content to send push notification
+ ///
+ public PushNotificationContent PushNotificationContent ;
+
+ ///
+ /// Action content to send email
+ ///
+ public SendEmailContent SendEmailContent ;
+
+ }
+
public class ActionsOnPlayersInSegmentTaskParameter
{
///
- /// ID of the action to perform on each player in segment.
+ /// List of actions to perform on each player in a segment. Each action object can contain only one action type.
///
- public string ActionId ;
+ public List Actions ;
///
/// ID of the segment to perform actions on.
@@ -349,6 +401,20 @@ public class BanInfo
}
+ public class BanPlayerContent
+ {
+ ///
+ /// Duration(in hours) to ban a player. If not provided, the player will be banned permanently.
+ ///
+ public int BanDurationHours ;
+
+ ///
+ /// Reason to ban a player
+ ///
+ public string BanReason ;
+
+ }
+
public class BanPlayerSegmentAction
{
///
@@ -1615,6 +1681,10 @@ public class DeleteOpenIdConnectionRequest : PlayFabRequestCommon
}
+ public class DeletePlayerContent
+ {
+ }
+
///
/// Deletes all data associated with the player, including statistics, custom data, inventory, purchases, virtual currency
/// balances, characters and shared group memberships. Removes the player from all leaderboards and player search indexes.
@@ -1828,6 +1898,25 @@ public class ExecuteAzureFunctionSegmentAction
}
+ public class ExecuteCloudScriptContent
+ {
+ ///
+ /// Arguments(JSON) to be passed into the cloudscript method
+ ///
+ public string CloudScriptMethodArguments ;
+
+ ///
+ /// Cloudscript method name
+ ///
+ public string CloudScriptMethodName ;
+
+ ///
+ /// Publish cloudscript results as playstream event
+ ///
+ public bool PublishResultsToPlayStream ;
+
+ }
+
public class ExecuteCloudScriptResult : PlayFabResultCommon
{
///
@@ -1914,6 +2003,25 @@ public class ExecuteCloudScriptSegmentAction
}
+ public class ExecuteFunctionContent
+ {
+ ///
+ /// Arguments(JSON) to be passed into the cloudscript azure function
+ ///
+ public string CloudScriptFunctionArguments ;
+
+ ///
+ /// Cloudscript azure function name
+ ///
+ public string CloudScriptFunctionName ;
+
+ ///
+ /// Publish results from executing the azure function as playstream event
+ ///
+ public bool PublishResultsToPlayStream ;
+
+ }
+
///
/// Exports all data associated with the master player account, including data from all titles the player has played, such
/// as statistics, custom data, inventory, purchases, virtual currency balances, characters, group memberships, publisher
@@ -2547,6 +2655,7 @@ public enum GenericErrorCodes
InvalidServiceConfiguration,
InvalidNamespaceMismatch,
LeaderboardColumnLengthMismatch,
+ InvalidStatisticScore,
MatchmakingEntityInvalid,
MatchmakingPlayerAttributesInvalid,
MatchmakingQueueNotFound,
@@ -2691,6 +2800,12 @@ public enum GenericErrorCodes
LobbyNewOwnerMustBeConnected,
LobbyCurrentOwnerStillConnected,
LobbyMemberIsNotOwner,
+ LobbyAssociatedServerMismatch,
+ LobbyAssociatedServerNotFound,
+ LobbyAssociatedToDifferentServer,
+ LobbyServerAlreadyAssociated,
+ LobbyIsNotClientOwned,
+ LobbyDoesNotUseConnections,
EventSamplingInvalidRatio,
EventSamplingInvalidEventNamespace,
EventSamplingInvalidEventName,
@@ -3757,6 +3872,25 @@ public int CompareTo(GrantedItemInstance other)
}
+ public class GrantItemContent
+ {
+ ///
+ /// Publish cloudscript results as playstream event
+ ///
+ public string CatalogVersion ;
+
+ ///
+ /// Publish cloudscript results as playstream event
+ ///
+ public string ItemId ;
+
+ ///
+ /// Publish cloudscript results as playstream event
+ ///
+ public int ItemQuantity ;
+
+ }
+
public class GrantItemSegmentAction
{
///
@@ -3814,6 +3948,20 @@ public class GrantItemsToUsersResult : PlayFabResultCommon
}
+ public class GrantVirtualCurrencyContent
+ {
+ ///
+ /// Amount of currency to be granted to a player
+ ///
+ public int CurrencyAmount ;
+
+ ///
+ /// Code of the currency to be granted to a player
+ ///
+ public string CurrencyCode ;
+
+ }
+
public class GrantVirtualCurrencySegmentAction
{
///
@@ -3860,6 +4008,20 @@ public class IncrementLimitedEditionItemAvailabilityResult : PlayFabResultCommon
{
}
+ public class IncrementPlayerStatisticContent
+ {
+ ///
+ /// Amount(in whole number) to increase the player statistic by
+ ///
+ public int StatisticChangeBy ;
+
+ ///
+ /// Name of the player statistic to be incremented
+ ///
+ public string StatisticName ;
+
+ }
+
public class IncrementPlayerStatisticSegmentAction
{
///
@@ -4928,6 +5090,25 @@ public class PlayerStatisticVersion
}
+ public class PushNotificationContent
+ {
+ ///
+ /// Text of message to send.
+ ///
+ public string Message ;
+
+ ///
+ /// Id of the push notification template.
+ ///
+ public string PushNotificationTemplateId ;
+
+ ///
+ /// Subject of message to send (may not be displayed in all platforms)
+ ///
+ public string Subject ;
+
+ }
+
public enum PushNotificationPlatform
{
ApplePushNotificationService,
@@ -6164,6 +6345,15 @@ public class SendAccountRecoveryEmailResult : PlayFabResultCommon
{
}
+ public class SendEmailContent
+ {
+ ///
+ /// The email template id of the email template to send.
+ ///
+ public string EmailTemplateId ;
+
+ }
+
///
/// This API lets developers set overrides for membership expirations, independent of any subscriptions setting it.
///
diff --git a/PlayFabSDK/source/PlayFabErrors.cs b/PlayFabSDK/source/PlayFabErrors.cs
index ed6e077b..c7b8d91e 100644
--- a/PlayFabSDK/source/PlayFabErrors.cs
+++ b/PlayFabSDK/source/PlayFabErrors.cs
@@ -563,6 +563,7 @@ public enum PlayFabErrorCode
InvalidServiceConfiguration = 1560,
InvalidNamespaceMismatch = 1561,
LeaderboardColumnLengthMismatch = 1562,
+ InvalidStatisticScore = 1563,
MatchmakingEntityInvalid = 2001,
MatchmakingPlayerAttributesInvalid = 2002,
MatchmakingQueueNotFound = 2016,
@@ -707,6 +708,12 @@ public enum PlayFabErrorCode
LobbyNewOwnerMustBeConnected = 13009,
LobbyCurrentOwnerStillConnected = 13010,
LobbyMemberIsNotOwner = 13011,
+ LobbyAssociatedServerMismatch = 13012,
+ LobbyAssociatedServerNotFound = 13013,
+ LobbyAssociatedToDifferentServer = 13014,
+ LobbyServerAlreadyAssociated = 13015,
+ LobbyIsNotClientOwned = 13016,
+ LobbyDoesNotUseConnections = 13017,
EventSamplingInvalidRatio = 14000,
EventSamplingInvalidEventNamespace = 14001,
EventSamplingInvalidEventName = 14002,
diff --git a/PlayFabSDK/source/PlayFabMultiplayerAPI.cs b/PlayFabSDK/source/PlayFabMultiplayerAPI.cs
index f2159756..3a44ab05 100644
--- a/PlayFabSDK/source/PlayFabMultiplayerAPI.cs
+++ b/PlayFabSDK/source/PlayFabMultiplayerAPI.cs
@@ -1825,6 +1825,33 @@ public static async Task> Reques
return new PlayFabResult { Result = result, CustomData = customData };
}
+ ///
+ /// Request a party session.
+ ///
+ public static async Task> RequestPartyServiceAsync(RequestPartyServiceRequest request, object customData = null, Dictionary extraHeaders = null)
+ {
+ await new PlayFabUtil.SynchronizationContextRemover();
+
+ var requestContext = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer;
+ var requestSettings = PlayFabSettings.staticSettings;
+ if (requestContext.EntityToken == null) throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call Client Login or GetEntityToken before calling this method");
+
+
+ var httpResult = await PlayFabHttp.DoPost("/Party/RequestPartyService", request, "X-EntityToken", requestContext.EntityToken, 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 };
+ }
+
///
/// Rolls over the credentials to the container registry.
///
diff --git a/PlayFabSDK/source/PlayFabMultiplayerInstanceAPI.cs b/PlayFabSDK/source/PlayFabMultiplayerInstanceAPI.cs
index 5af3080e..69bdc662 100644
--- a/PlayFabSDK/source/PlayFabMultiplayerInstanceAPI.cs
+++ b/PlayFabSDK/source/PlayFabMultiplayerInstanceAPI.cs
@@ -1777,6 +1777,32 @@ public async Task> RequestMultip
return new PlayFabResult { Result = result, CustomData = customData };
}
+ ///
+ /// Request a party session.
+ ///
+ public async Task> RequestPartyServiceAsync(RequestPartyServiceRequest request, object customData = null, Dictionary extraHeaders = null)
+ {
+ await new PlayFabUtil.SynchronizationContextRemover();
+
+ var requestContext = request?.AuthenticationContext ?? authenticationContext;
+ var requestSettings = apiSettings ?? PlayFabSettings.staticSettings;
+ if (requestContext.EntityToken == null) throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call Client Login or GetEntityToken before calling this method");
+
+ var httpResult = await PlayFabHttp.DoPost("/Party/RequestPartyService", request, "X-EntityToken", requestContext.EntityToken, 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 };
+ }
+
///
/// Rolls over the credentials to the container registry.
///
diff --git a/PlayFabSDK/source/PlayFabMultiplayerModels.cs b/PlayFabSDK/source/PlayFabMultiplayerModels.cs
index e3169ef3..596bb715 100644
--- a/PlayFabSDK/source/PlayFabMultiplayerModels.cs
+++ b/PlayFabSDK/source/PlayFabMultiplayerModels.cs
@@ -1856,6 +1856,18 @@ public class DifferenceRule
}
+ public enum DirectPeerConnectivityOptions
+ {
+ None,
+ SamePlatformType,
+ DifferentPlatformType,
+ AnyPlatformType,
+ SameEntityLoginProvider,
+ DifferentEntityLoginProvider,
+ AnyEntityLoginProvider,
+ AnyPlatformTypeAndEntityLoginProvider
+ }
+
public class DynamicStandbySettings
{
///
@@ -4271,6 +4283,73 @@ public class PaginationResponse : PlayFabResultCommon
}
+ public class PartyInvitationConfiguration
+ {
+ ///
+ /// The list of PlayFab EntityKeys that the invitation allows to authenticate into the network. If this list is empty, all
+ /// users are allowed to authenticate using the invitation's identifier. This list may contain no more than 1024 items.
+ ///
+ public List EntityKeys ;
+
+ ///
+ /// The invite identifier for this party. If this value is specified, it must be no longer than 127 characters.
+ ///
+ public string Identifier ;
+
+ ///
+ /// Controls which participants can revoke this invite.
+ ///
+ public string Revocability ;
+
+ }
+
+ public enum PartyInvitationRevocability
+ {
+ Creator,
+ Anyone
+ }
+
+ public class PartyNetworkConfiguration
+ {
+ ///
+ /// Controls whether and how to support direct peer-to-peer connection attempts among devices in the network.
+ ///
+ public string DirectPeerConnectivityOptions ;
+
+ ///
+ /// The maximum number of devices allowed to connect to the network. Must be between 1 and 32, inclusive.
+ ///
+ public uint MaxDevices ;
+
+ ///
+ /// The maximum number of devices allowed per user. Must be greater than 0.
+ ///
+ public uint MaxDevicesPerUser ;
+
+ ///
+ /// The maximum number of endpoints allowed per device. Must be between 0 and 32, inclusive.
+ ///
+ public uint MaxEndpointsPerDevice ;
+
+ ///
+ /// The maximum number of unique users allowed in the network. Must be greater than 0.
+ ///
+ public uint MaxUsers ;
+
+ ///
+ /// The maximum number of users allowed per device. Must be between 1 and 8, inclusive.
+ ///
+ public uint MaxUsersPerDevice ;
+
+ ///
+ /// An optionally-specified configuration for the initial invitation for this party. If not provided, default configuration
+ /// values will be used: a title-unique invitation identifier will be generated, the revocability will be Anyone, and the
+ /// EntityID list will be empty.
+ ///
+ public PartyInvitationConfiguration PartyInvitationConfiguration ;
+
+ }
+
public class Port
{
///
@@ -4582,6 +4661,55 @@ public class RequestMultiplayerServerResponse : PlayFabResultCommon
}
+ ///
+ /// Requests a party session from a particular set of builds if build alias params is provided, in any of the given
+ /// preferred regions.
+ ///
+ public class RequestPartyServiceRequest : PlayFabRequestCommon
+ {
+ ///
+ /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
+ ///
+ public Dictionary CustomTags ;
+
+ ///
+ /// The network configuration for this request.
+ ///
+ public PartyNetworkConfiguration NetworkConfiguration ;
+
+ ///
+ /// A guid string party ID created track the party session over its life.
+ ///
+ public string PartyId ;
+
+ ///
+ /// The preferred regions to request a party session from. The party service will iterate through the regions in the
+ /// specified order and allocate a party session from the first one that is available.
+ ///
+ public List PreferredRegions ;
+
+ }
+
+ public class RequestPartyServiceResponse : PlayFabResultCommon
+ {
+ ///
+ /// The invitation identifier supplied in the PartyInvitationConfiguration, or the PlayFab-generated guid if none was
+ /// supplied.
+ ///
+ public string InvitationId ;
+
+ ///
+ /// The guid string party ID of the party session.
+ ///
+ public string PartyId ;
+
+ ///
+ /// A base-64 encoded string containing the serialized network descriptor for this party.
+ ///
+ public string SerializedNetworkDescriptor ;
+
+ }
+
///
/// Gets new credentials to the container registry where game developers can upload custom container images to before
/// creating a new build.
@@ -5419,6 +5547,11 @@ public class UploadCertificateRequest : PlayFabRequestCommon
///
public Dictionary CustomTags ;
+ ///
+ /// Forces the certificate renewal if the certificate already exists. Default is false
+ ///
+ public bool? ForceUpdate ;
+
///
/// The game certificate to upload.
///
diff --git a/PlayFabSDK/source/PlayFabProfilesModels.cs b/PlayFabSDK/source/PlayFabProfilesModels.cs
index 8e832132..a5d9aaf1 100644
--- a/PlayFabSDK/source/PlayFabProfilesModels.cs
+++ b/PlayFabSDK/source/PlayFabProfilesModels.cs
@@ -231,7 +231,7 @@ public class EntityStatisticAttributeValue
///
/// Attribute Statistic scores.
///
- public List Scores ;
+ public List Scores ;
}
@@ -255,7 +255,7 @@ public class EntityStatisticValue
///
/// Statistic scores
///
- public List Scores ;
+ public List Scores ;
///
/// Statistic value
diff --git a/PlayFabSDK/source/PlayFabSDK.csproj b/PlayFabSDK/source/PlayFabSDK.csproj
index 5237223b..11aa9b18 100644
--- a/PlayFabSDK/source/PlayFabSDK.csproj
+++ b/PlayFabSDK/source/PlayFabSDK.csproj
@@ -8,7 +8,7 @@
512
PlayFabAllSDK
- 1.163.230915
+ 1.165.230929
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#230915
+ https://docs.microsoft.com/gaming/playfab/release-notes#230929
en
1
1
diff --git a/PlayFabSDK/source/PlayFabServerModels.cs b/PlayFabSDK/source/PlayFabServerModels.cs
index 52c27200..9f326b21 100644
--- a/PlayFabSDK/source/PlayFabServerModels.cs
+++ b/PlayFabSDK/source/PlayFabServerModels.cs
@@ -2091,6 +2091,7 @@ public enum GenericErrorCodes
InvalidServiceConfiguration,
InvalidNamespaceMismatch,
LeaderboardColumnLengthMismatch,
+ InvalidStatisticScore,
MatchmakingEntityInvalid,
MatchmakingPlayerAttributesInvalid,
MatchmakingQueueNotFound,
@@ -2235,6 +2236,12 @@ public enum GenericErrorCodes
LobbyNewOwnerMustBeConnected,
LobbyCurrentOwnerStillConnected,
LobbyMemberIsNotOwner,
+ LobbyAssociatedServerMismatch,
+ LobbyAssociatedServerNotFound,
+ LobbyAssociatedToDifferentServer,
+ LobbyServerAlreadyAssociated,
+ LobbyIsNotClientOwned,
+ LobbyDoesNotUseConnections,
EventSamplingInvalidRatio,
EventSamplingInvalidEventNamespace,
EventSamplingInvalidEventName,
diff --git a/PlayFabSDK/source/PlayFabSettings.cs b/PlayFabSDK/source/PlayFabSettings.cs
index 82496e7e..a3f19341 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.163.230915";
- public const string BuildIdentifier = "adobuild_csharpsdk_115";
- public const string SdkVersionString = "CSharpSDK-1.163.230915";
+ public const string SdkVersion = "1.165.230929";
+ public const string BuildIdentifier = "adobuild_csharpsdk_114";
+ public const string SdkVersionString = "CSharpSDK-1.165.230929";
/// 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 a33f2663..f5f3540a 100644
--- a/Plugins/CloudScript/source/PlayFabCloudScriptPlugin.csproj
+++ b/Plugins/CloudScript/source/PlayFabCloudScriptPlugin.csproj
@@ -8,7 +8,7 @@
512
PlayFabCloudScriptPlugin
- 1.163.230915-alpha
+ 1.165.230929-alpha
PlayFab CSharp CloudScript Plugin
Microsoft
Microsoft
@@ -21,7 +21,7 @@
PlayFabCloudScriptPlugin
Copyright 2023
PlayFab, Baas, Paas, JSON, REST, HTTP, SSL, API, cloud, liveops, game, gamedev, native
- https://docs.microsoft.com/gaming/playfab/release-notes#230915
+ https://docs.microsoft.com/gaming/playfab/release-notes#230929
en
1
1
@@ -45,7 +45,7 @@
-
+
diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabAdminModels.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabAdminModels.cs
index 6f236ece..ef600f16 100644
--- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabAdminModels.cs
+++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabAdminModels.cs
@@ -21,12 +21,64 @@ public class AbortTaskInstanceRequest : PlayFabRequestCommon
}
+ ///
+ /// The work to be performed on each entity which can only be of one type.
+ ///
+ public class Action
+ {
+ ///
+ /// Action content to ban player
+ ///
+ public BanPlayerContent BanPlayerContent ;
+
+ ///
+ /// Action content to delete player
+ ///
+ public DeletePlayerContent DeletePlayerContent ;
+
+ ///
+ /// Action content to execute cloud script
+ ///
+ public ExecuteCloudScriptContent ExecuteCloudScriptContent ;
+
+ ///
+ /// Action content to execute azure function
+ ///
+ public ExecuteFunctionContent ExecuteFunctionContent ;
+
+ ///
+ /// Action content to grant item
+ ///
+ public GrantItemContent GrantItemContent ;
+
+ ///
+ /// Action content to grant virtual currency
+ ///
+ public GrantVirtualCurrencyContent GrantVirtualCurrencyContent ;
+
+ ///
+ /// Action content to increment player statistic
+ ///
+ public IncrementPlayerStatisticContent IncrementPlayerStatisticContent ;
+
+ ///
+ /// Action content to send push notification
+ ///
+ public PushNotificationContent PushNotificationContent ;
+
+ ///
+ /// Action content to send email
+ ///
+ public SendEmailContent SendEmailContent ;
+
+ }
+
public class ActionsOnPlayersInSegmentTaskParameter
{
///
- /// ID of the action to perform on each player in segment.
+ /// List of actions to perform on each player in a segment. Each action object can contain only one action type.
///
- public string ActionId ;
+ public List Actions ;
///
/// ID of the segment to perform actions on.
@@ -349,6 +401,20 @@ public class BanInfo
}
+ public class BanPlayerContent
+ {
+ ///
+ /// Duration(in hours) to ban a player. If not provided, the player will be banned permanently.
+ ///
+ public int BanDurationHours ;
+
+ ///
+ /// Reason to ban a player
+ ///
+ public string BanReason ;
+
+ }
+
public class BanPlayerSegmentAction
{
///
@@ -1615,6 +1681,10 @@ public class DeleteOpenIdConnectionRequest : PlayFabRequestCommon
}
+ public class DeletePlayerContent
+ {
+ }
+
///
/// Deletes all data associated with the player, including statistics, custom data, inventory, purchases, virtual currency
/// balances, characters and shared group memberships. Removes the player from all leaderboards and player search indexes.
@@ -1828,6 +1898,25 @@ public class ExecuteAzureFunctionSegmentAction
}
+ public class ExecuteCloudScriptContent
+ {
+ ///
+ /// Arguments(JSON) to be passed into the cloudscript method
+ ///
+ public string CloudScriptMethodArguments ;
+
+ ///
+ /// Cloudscript method name
+ ///
+ public string CloudScriptMethodName ;
+
+ ///
+ /// Publish cloudscript results as playstream event
+ ///
+ public bool PublishResultsToPlayStream ;
+
+ }
+
public class ExecuteCloudScriptResult : PlayFabResultCommon
{
///
@@ -1914,6 +2003,25 @@ public class ExecuteCloudScriptSegmentAction
}
+ public class ExecuteFunctionContent
+ {
+ ///
+ /// Arguments(JSON) to be passed into the cloudscript azure function
+ ///
+ public string CloudScriptFunctionArguments ;
+
+ ///
+ /// Cloudscript azure function name
+ ///
+ public string CloudScriptFunctionName ;
+
+ ///
+ /// Publish results from executing the azure function as playstream event
+ ///
+ public bool PublishResultsToPlayStream ;
+
+ }
+
///
/// Exports all data associated with the master player account, including data from all titles the player has played, such
/// as statistics, custom data, inventory, purchases, virtual currency balances, characters, group memberships, publisher
@@ -2547,6 +2655,7 @@ public enum GenericErrorCodes
InvalidServiceConfiguration,
InvalidNamespaceMismatch,
LeaderboardColumnLengthMismatch,
+ InvalidStatisticScore,
MatchmakingEntityInvalid,
MatchmakingPlayerAttributesInvalid,
MatchmakingQueueNotFound,
@@ -2691,6 +2800,12 @@ public enum GenericErrorCodes
LobbyNewOwnerMustBeConnected,
LobbyCurrentOwnerStillConnected,
LobbyMemberIsNotOwner,
+ LobbyAssociatedServerMismatch,
+ LobbyAssociatedServerNotFound,
+ LobbyAssociatedToDifferentServer,
+ LobbyServerAlreadyAssociated,
+ LobbyIsNotClientOwned,
+ LobbyDoesNotUseConnections,
EventSamplingInvalidRatio,
EventSamplingInvalidEventNamespace,
EventSamplingInvalidEventName,
@@ -3757,6 +3872,25 @@ public int CompareTo(GrantedItemInstance other)
}
+ public class GrantItemContent
+ {
+ ///
+ /// Publish cloudscript results as playstream event
+ ///
+ public string CatalogVersion ;
+
+ ///
+ /// Publish cloudscript results as playstream event
+ ///
+ public string ItemId ;
+
+ ///
+ /// Publish cloudscript results as playstream event
+ ///
+ public int ItemQuantity ;
+
+ }
+
public class GrantItemSegmentAction
{
///
@@ -3814,6 +3948,20 @@ public class GrantItemsToUsersResult : PlayFabResultCommon
}
+ public class GrantVirtualCurrencyContent
+ {
+ ///
+ /// Amount of currency to be granted to a player
+ ///
+ public int CurrencyAmount ;
+
+ ///
+ /// Code of the currency to be granted to a player
+ ///
+ public string CurrencyCode ;
+
+ }
+
public class GrantVirtualCurrencySegmentAction
{
///
@@ -3860,6 +4008,20 @@ public class IncrementLimitedEditionItemAvailabilityResult : PlayFabResultCommon
{
}
+ public class IncrementPlayerStatisticContent
+ {
+ ///
+ /// Amount(in whole number) to increase the player statistic by
+ ///
+ public int StatisticChangeBy ;
+
+ ///
+ /// Name of the player statistic to be incremented
+ ///
+ public string StatisticName ;
+
+ }
+
public class IncrementPlayerStatisticSegmentAction
{
///
@@ -4928,6 +5090,25 @@ public class PlayerStatisticVersion
}
+ public class PushNotificationContent
+ {
+ ///
+ /// Text of message to send.
+ ///
+ public string Message ;
+
+ ///
+ /// Id of the push notification template.
+ ///
+ public string PushNotificationTemplateId ;
+
+ ///
+ /// Subject of message to send (may not be displayed in all platforms)
+ ///
+ public string Subject ;
+
+ }
+
public enum PushNotificationPlatform
{
ApplePushNotificationService,
@@ -6164,6 +6345,15 @@ public class SendAccountRecoveryEmailResult : PlayFabResultCommon
{
}
+ public class SendEmailContent
+ {
+ ///
+ /// The email template id of the email template to send.
+ ///
+ public string EmailTemplateId ;
+
+ }
+
///
/// This API lets developers set overrides for membership expirations, independent of any subscriptions setting it.
///
diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabErrors.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabErrors.cs
index ed6e077b..c7b8d91e 100644
--- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabErrors.cs
+++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabErrors.cs
@@ -563,6 +563,7 @@ public enum PlayFabErrorCode
InvalidServiceConfiguration = 1560,
InvalidNamespaceMismatch = 1561,
LeaderboardColumnLengthMismatch = 1562,
+ InvalidStatisticScore = 1563,
MatchmakingEntityInvalid = 2001,
MatchmakingPlayerAttributesInvalid = 2002,
MatchmakingQueueNotFound = 2016,
@@ -707,6 +708,12 @@ public enum PlayFabErrorCode
LobbyNewOwnerMustBeConnected = 13009,
LobbyCurrentOwnerStillConnected = 13010,
LobbyMemberIsNotOwner = 13011,
+ LobbyAssociatedServerMismatch = 13012,
+ LobbyAssociatedServerNotFound = 13013,
+ LobbyAssociatedToDifferentServer = 13014,
+ LobbyServerAlreadyAssociated = 13015,
+ LobbyIsNotClientOwned = 13016,
+ LobbyDoesNotUseConnections = 13017,
EventSamplingInvalidRatio = 14000,
EventSamplingInvalidEventNamespace = 14001,
EventSamplingInvalidEventName = 14002,
diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerAPI.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerAPI.cs
index f2159756..3a44ab05 100644
--- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerAPI.cs
+++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerAPI.cs
@@ -1825,6 +1825,33 @@ public static async Task> Reques
return new PlayFabResult { Result = result, CustomData = customData };
}
+ ///
+ /// Request a party session.
+ ///
+ public static async Task> RequestPartyServiceAsync(RequestPartyServiceRequest request, object customData = null, Dictionary extraHeaders = null)
+ {
+ await new PlayFabUtil.SynchronizationContextRemover();
+
+ var requestContext = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer;
+ var requestSettings = PlayFabSettings.staticSettings;
+ if (requestContext.EntityToken == null) throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call Client Login or GetEntityToken before calling this method");
+
+
+ var httpResult = await PlayFabHttp.DoPost("/Party/RequestPartyService", request, "X-EntityToken", requestContext.EntityToken, 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 };
+ }
+
///
/// Rolls over the credentials to the container registry.
///
diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerInstanceAPI.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerInstanceAPI.cs
index 5af3080e..69bdc662 100644
--- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerInstanceAPI.cs
+++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerInstanceAPI.cs
@@ -1777,6 +1777,32 @@ public async Task> RequestMultip
return new PlayFabResult { Result = result, CustomData = customData };
}
+ ///
+ /// Request a party session.
+ ///
+ public async Task> RequestPartyServiceAsync(RequestPartyServiceRequest request, object customData = null, Dictionary extraHeaders = null)
+ {
+ await new PlayFabUtil.SynchronizationContextRemover();
+
+ var requestContext = request?.AuthenticationContext ?? authenticationContext;
+ var requestSettings = apiSettings ?? PlayFabSettings.staticSettings;
+ if (requestContext.EntityToken == null) throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call Client Login or GetEntityToken before calling this method");
+
+ var httpResult = await PlayFabHttp.DoPost("/Party/RequestPartyService", request, "X-EntityToken", requestContext.EntityToken, 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 };
+ }
+
///
/// Rolls over the credentials to the container registry.
///
diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerModels.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerModels.cs
index e3169ef3..596bb715 100644
--- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerModels.cs
+++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabMultiplayerModels.cs
@@ -1856,6 +1856,18 @@ public class DifferenceRule
}
+ public enum DirectPeerConnectivityOptions
+ {
+ None,
+ SamePlatformType,
+ DifferentPlatformType,
+ AnyPlatformType,
+ SameEntityLoginProvider,
+ DifferentEntityLoginProvider,
+ AnyEntityLoginProvider,
+ AnyPlatformTypeAndEntityLoginProvider
+ }
+
public class DynamicStandbySettings
{
///
@@ -4271,6 +4283,73 @@ public class PaginationResponse : PlayFabResultCommon
}
+ public class PartyInvitationConfiguration
+ {
+ ///
+ /// The list of PlayFab EntityKeys that the invitation allows to authenticate into the network. If this list is empty, all
+ /// users are allowed to authenticate using the invitation's identifier. This list may contain no more than 1024 items.
+ ///
+ public List EntityKeys ;
+
+ ///
+ /// The invite identifier for this party. If this value is specified, it must be no longer than 127 characters.
+ ///
+ public string Identifier ;
+
+ ///
+ /// Controls which participants can revoke this invite.
+ ///
+ public string Revocability ;
+
+ }
+
+ public enum PartyInvitationRevocability
+ {
+ Creator,
+ Anyone
+ }
+
+ public class PartyNetworkConfiguration
+ {
+ ///
+ /// Controls whether and how to support direct peer-to-peer connection attempts among devices in the network.
+ ///
+ public string DirectPeerConnectivityOptions ;
+
+ ///
+ /// The maximum number of devices allowed to connect to the network. Must be between 1 and 32, inclusive.
+ ///
+ public uint MaxDevices ;
+
+ ///
+ /// The maximum number of devices allowed per user. Must be greater than 0.
+ ///
+ public uint MaxDevicesPerUser ;
+
+ ///
+ /// The maximum number of endpoints allowed per device. Must be between 0 and 32, inclusive.
+ ///
+ public uint MaxEndpointsPerDevice ;
+
+ ///
+ /// The maximum number of unique users allowed in the network. Must be greater than 0.
+ ///
+ public uint MaxUsers ;
+
+ ///
+ /// The maximum number of users allowed per device. Must be between 1 and 8, inclusive.
+ ///
+ public uint MaxUsersPerDevice ;
+
+ ///
+ /// An optionally-specified configuration for the initial invitation for this party. If not provided, default configuration
+ /// values will be used: a title-unique invitation identifier will be generated, the revocability will be Anyone, and the
+ /// EntityID list will be empty.
+ ///
+ public PartyInvitationConfiguration PartyInvitationConfiguration ;
+
+ }
+
public class Port
{
///
@@ -4582,6 +4661,55 @@ public class RequestMultiplayerServerResponse : PlayFabResultCommon
}
+ ///
+ /// Requests a party session from a particular set of builds if build alias params is provided, in any of the given
+ /// preferred regions.
+ ///
+ public class RequestPartyServiceRequest : PlayFabRequestCommon
+ {
+ ///
+ /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
+ ///
+ public Dictionary CustomTags ;
+
+ ///
+ /// The network configuration for this request.
+ ///
+ public PartyNetworkConfiguration NetworkConfiguration ;
+
+ ///
+ /// A guid string party ID created track the party session over its life.
+ ///
+ public string PartyId ;
+
+ ///
+ /// The preferred regions to request a party session from. The party service will iterate through the regions in the
+ /// specified order and allocate a party session from the first one that is available.
+ ///
+ public List PreferredRegions ;
+
+ }
+
+ public class RequestPartyServiceResponse : PlayFabResultCommon
+ {
+ ///
+ /// The invitation identifier supplied in the PartyInvitationConfiguration, or the PlayFab-generated guid if none was
+ /// supplied.
+ ///
+ public string InvitationId ;
+
+ ///
+ /// The guid string party ID of the party session.
+ ///
+ public string PartyId ;
+
+ ///
+ /// A base-64 encoded string containing the serialized network descriptor for this party.
+ ///
+ public string SerializedNetworkDescriptor ;
+
+ }
+
///
/// Gets new credentials to the container registry where game developers can upload custom container images to before
/// creating a new build.
@@ -5419,6 +5547,11 @@ public class UploadCertificateRequest : PlayFabRequestCommon
///
public Dictionary CustomTags ;
+ ///
+ /// Forces the certificate renewal if the certificate already exists. Default is false
+ ///
+ public bool? ForceUpdate ;
+
///
/// The game certificate to upload.
///
diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabProfilesModels.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabProfilesModels.cs
index 8e832132..a5d9aaf1 100644
--- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabProfilesModels.cs
+++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabProfilesModels.cs
@@ -231,7 +231,7 @@ public class EntityStatisticAttributeValue
///
/// Attribute Statistic scores.
///
- public List Scores ;
+ public List Scores ;
}
@@ -255,7 +255,7 @@ public class EntityStatisticValue
///
/// Statistic scores
///
- public List Scores ;
+ public List Scores ;
///
/// Statistic value
diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSDK.csproj b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSDK.csproj
index 5237223b..11aa9b18 100644
--- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSDK.csproj
+++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSDK.csproj
@@ -8,7 +8,7 @@
512
PlayFabAllSDK
- 1.163.230915
+ 1.165.230929
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#230915
+ https://docs.microsoft.com/gaming/playfab/release-notes#230929
en
1
1
diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerModels.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerModels.cs
index 52c27200..9f326b21 100644
--- a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerModels.cs
+++ b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabServerModels.cs
@@ -2091,6 +2091,7 @@ public enum GenericErrorCodes
InvalidServiceConfiguration,
InvalidNamespaceMismatch,
LeaderboardColumnLengthMismatch,
+ InvalidStatisticScore,
MatchmakingEntityInvalid,
MatchmakingPlayerAttributesInvalid,
MatchmakingQueueNotFound,
@@ -2235,6 +2236,12 @@ public enum GenericErrorCodes
LobbyNewOwnerMustBeConnected,
LobbyCurrentOwnerStillConnected,
LobbyMemberIsNotOwner,
+ LobbyAssociatedServerMismatch,
+ LobbyAssociatedServerNotFound,
+ LobbyAssociatedToDifferentServer,
+ LobbyServerAlreadyAssociated,
+ LobbyIsNotClientOwned,
+ LobbyDoesNotUseConnections,
EventSamplingInvalidRatio,
EventSamplingInvalidEventNamespace,
EventSamplingInvalidEventName,
diff --git a/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSettings.cs b/XamarinTestRunner/XamarinTestRunner/PlayFabSDK/PlayFabSettings.cs
index 82496e7e..a3f19341 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.163.230915";
- public const string BuildIdentifier = "adobuild_csharpsdk_115";
- public const string SdkVersionString = "CSharpSDK-1.163.230915";
+ public const string SdkVersion = "1.165.230929";
+ public const string BuildIdentifier = "adobuild_csharpsdk_114";
+ public const string SdkVersionString = "CSharpSDK-1.165.230929";
/// This is only for customers running a private cluster. Generally you shouldn't touch this
public static string DefaultProductionEnvironmentUrl = "playfabapi.com";