Skip to content

Commit

Permalink
https://docs.microsoft.com/en-us/gaming/playfab/release-notes/#231110
Browse files Browse the repository at this point in the history
  • Loading branch information
PlayFab SDK Team authored and PlayFab SDK Team committed Nov 16, 2023
2 parents 65e9f84 + 22a5880 commit 969a670
Show file tree
Hide file tree
Showing 49 changed files with 1,088 additions and 91 deletions.
2 changes: 1 addition & 1 deletion AndroidStudioExample/app/packageMe.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ New-Item -ItemType Directory -Force ./builds
popd

cd target
Copy-Item client-sdk-0.199.230915.jar -Destination ../../builds/client-sdk-0.199.230915.jar
Copy-Item client-sdk-0.205.231110.jar -Destination ../../builds/client-sdk-0.205.231110.jar
2 changes: 1 addition & 1 deletion AndroidStudioExample/app/packageMe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ mkdir -p ./builds
popd

cd target
cp client-sdk-0.199.230915.jar ../../builds/client-sdk-0.199.230915.jar
cp client-sdk-0.205.231110.jar ../../builds/client-sdk-0.205.231110.jar
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@

/**
* The Authentication APIs provide a convenient way to convert classic authentication responses into entity authentication
* models. These APIs will provide you with the entity authentication token needed for subsequent Entity API calls. Manage
* API keys for authenticating any entity. The game_server API is designed to create uniquely identifiable game_server
* entities. The game_server Entity token can be used to call Matchmaking Lobby and Pubsub for server scenarios.
* models. These APIs will provide you with the entity authentication token needed for subsequent Entity API calls. The
* game_server API is designed to create uniquely identifiable game_server entities. The game_server Entity token can be
* used to call Matchmaking Lobby and Pubsub for server scenarios.
*/
public class PlayFabAuthenticationAPI {
private static Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").create();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7574,6 +7574,7 @@ private static PlayFabResult<RegisterPlayFabUserResult> privateRegisterPlayFabUs
PlayFabJsonSuccess<RegisterPlayFabUserResult> resultData = gson.fromJson(resultRawJson, new TypeToken<PlayFabJsonSuccess<RegisterPlayFabUserResult>>(){}.getType());
RegisterPlayFabUserResult result = resultData.data;
PlayFabSettings.ClientSessionTicket = result.SessionTicket != null ? result.SessionTicket : PlayFabSettings.ClientSessionTicket;
if (result.EntityToken != null) PlayFabSettings.EntityToken = result.EntityToken.EntityToken != null ? result.EntityToken.EntityToken : PlayFabSettings.EntityToken;

PlayFabResult<RegisterPlayFabUserResult> pfResult = new PlayFabResult<RegisterPlayFabUserResult>();
pfResult.Result = result;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1472,7 +1472,10 @@ public static class RedeemMicrosoftStoreInventoryItemsRequest {
public Map<String,String> CustomTags;
/** The entity to perform this action on. */
public EntityKey Entity;
/** Xbox Token used for delegated business partner authentication. */
/**
* Xbox Token used for delegated business partner authentication. Token provided by the Xbox Live SDK method
* GetTokenAndSignatureAsync("POST", "https://playfabapi.com/", "").
*/
public String XboxToken;

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -561,6 +561,8 @@ public static enum PlayFabErrorCode {
InvalidServiceConfiguration(1560),
InvalidNamespaceMismatch(1561),
LeaderboardColumnLengthMismatch(1562),
InvalidStatisticScore(1563),
LeaderboardColumnsNotSpecified(1564),
MatchmakingEntityInvalid(2001),
MatchmakingPlayerAttributesInvalid(2002),
MatchmakingQueueNotFound(2016),
Expand Down Expand Up @@ -705,6 +707,12 @@ public static 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),
Expand All @@ -728,6 +736,7 @@ public static enum PlayFabErrorCode {
EventSinkTenantNotFound(15009),
EventSinkAadNotFound(15010),
EventSinkDatabaseNotFound(15011),
EventSinkTitleUnauthorized(15012),
OperationCanceled(16000),
InvalidDisplayNameRandomSuffixLength(17000),
AllowNonUniquePlayerDisplayNamesDisableNotAllowed(17001),
Expand All @@ -747,7 +756,9 @@ public static enum PlayFabErrorCode {
PlayerCustomPropertiesDuplicatePropertyName(19006),
PlayerCustomPropertiesPropertyDoesNotExist(19007),
AddonAlreadyExists(19008),
AddonDoesntExist(19009);
AddonDoesntExist(19009),
CopilotDisabled(19100),
CopilotInvalidRequest(19101);

public int id;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3964,6 +3964,68 @@ private static PlayFabResult<RequestMultiplayerServerResponse> privateRequestMul
return pfResult;
}

/**
* Request a party session.
* @param request RequestPartyServiceRequest
* @return Async Task will return RequestPartyServiceResponse
*/
@SuppressWarnings("unchecked")
public static FutureTask<PlayFabResult<RequestPartyServiceResponse>> RequestPartyServiceAsync(final RequestPartyServiceRequest request) {
return new FutureTask(new Callable<PlayFabResult<RequestPartyServiceResponse>>() {
public PlayFabResult<RequestPartyServiceResponse> call() throws Exception {
return privateRequestPartyServiceAsync(request);
}
});
}

/**
* Request a party session.
* @param request RequestPartyServiceRequest
* @return RequestPartyServiceResponse
*/
@SuppressWarnings("unchecked")
public static PlayFabResult<RequestPartyServiceResponse> RequestPartyService(final RequestPartyServiceRequest request) {
FutureTask<PlayFabResult<RequestPartyServiceResponse>> task = new FutureTask(new Callable<PlayFabResult<RequestPartyServiceResponse>>() {
public PlayFabResult<RequestPartyServiceResponse> call() throws Exception {
return privateRequestPartyServiceAsync(request);
}
});
try {
task.run();
return task.get();
} catch(Exception e) {
PlayFabResult<RequestPartyServiceResponse> exceptionResult = new PlayFabResult<RequestPartyServiceResponse>();
exceptionResult.Error = PlayFabHTTP.GeneratePfError(-1, PlayFabErrorCode.Unknown, e.getMessage(), null, null);
return exceptionResult;
}
}

/** Request a party session. */
@SuppressWarnings("unchecked")
private static PlayFabResult<RequestPartyServiceResponse> privateRequestPartyServiceAsync(final RequestPartyServiceRequest request) throws Exception {
if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");

FutureTask<Object> task = PlayFabHTTP.doPost(PlayFabSettings.GetURL("/Party/RequestPartyService"), request, "X-EntityToken", PlayFabSettings.EntityToken);
task.run();
Object httpResult = task.get();
if (httpResult instanceof PlayFabError) {
PlayFabError error = (PlayFabError)httpResult;
if (PlayFabSettings.GlobalErrorHandler != null)
PlayFabSettings.GlobalErrorHandler.callback(error);
PlayFabResult result = new PlayFabResult<RequestPartyServiceResponse>();
result.Error = error;
return result;
}
String resultRawJson = (String) httpResult;

PlayFabJsonSuccess<RequestPartyServiceResponse> resultData = gson.fromJson(resultRawJson, new TypeToken<PlayFabJsonSuccess<RequestPartyServiceResponse>>(){}.getType());
RequestPartyServiceResponse result = resultData.data;

PlayFabResult<RequestPartyServiceResponse> pfResult = new PlayFabResult<RequestPartyServiceResponse>();
pfResult.Result = result;
return pfResult;
}

/**
* Rolls over the credentials to the container registry.
* @param request RolloverContainerRegistryCredentialsRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ public static enum AzureRegion {
WestUs2,
CentralIndia,
UaeNorth,
UkSouth
UkSouth,
SwedenCentral
}

public static enum AzureVmFamily {
Expand Down Expand Up @@ -736,7 +737,7 @@ public static class CreateLobbyRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
public Map<String,String> CustomTags;
/**
* The private key-value pairs which are only visible to members of the lobby. At most 30 key-value pairs may be stored
* The private key-value pairs which are visible to all entities in the lobby. At most 30 key-value pairs may be stored
* here, keys are limited to 30 characters and values to 1000. The total size of all lobbyData values may not exceed 4096
* bytes. Keys are case sensitive.
*/
Expand Down Expand Up @@ -994,6 +995,17 @@ public static class DeleteRemoteUserRequest {

}

public static enum DirectPeerConnectivityOptions {
None,
SamePlatformType,
DifferentPlatformType,
AnyPlatformType,
SameEntityLoginProvider,
DifferentEntityLoginProvider,
AnyEntityLoginProvider,
AnyPlatformTypeAndEntityLoginProvider
}

public static class DynamicStandbySettings {
/**
* List of auto standing by trigger values and corresponding standing by multiplier. Defaults to 1.5X at 50%, 3X at 25%,
Expand Down Expand Up @@ -1665,7 +1677,7 @@ public static class JoinArrangedLobbyRequest {
public Long MaxPlayers;
/**
* The private key-value pairs used by the member to communicate information to other members and the owner. Visible to all
* members of the lobby. At most 30 key-value pairs may be stored here, keys are limited to 30 characters and values to
* entities in the lobby. At most 30 key-value pairs may be stored here, keys are limited to 30 characters and values to
* 1000. The total size of all memberData values may not exceed 4096 bytes. Keys are case sensitive.
*/
public Map<String,String> MemberData;
Expand Down Expand Up @@ -1699,7 +1711,7 @@ public static class JoinLobbyRequest {
public Map<String,String> CustomTags;
/**
* The private key-value pairs used by the member to communicate information to other members and the owner. Visible to all
* members of the lobby. At most 30 key-value pairs may be stored here, keys are limited to 30 characters and values to
* entities in the lobby. At most 30 key-value pairs may be stored here, keys are limited to 30 characters and values to
* 1000. The total size of all memberData values may not exceed 4096 bytes.Keys are case sensitive.
*/
public Map<String,String> MemberData;
Expand Down Expand Up @@ -2198,6 +2210,46 @@ public static class PaginationResponse {

}

public static 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 ArrayList<EntityKey> 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 static enum PartyInvitationRevocability {
Creator,
Anyone
}

public static 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 Long MaxDevices;
/** The maximum number of devices allowed per user. Must be greater than 0. */
public Long MaxDevicesPerUser;
/** The maximum number of endpoints allowed per device. Must be between 0 and 32, inclusive. */
public Long MaxEndpointsPerDevice;
/** The maximum number of unique users allowed in the network. Must be greater than 0. */
public Long MaxUsers;
/** The maximum number of users allowed per device. Must be between 1 and 8, inclusive. */
public Long 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 static class Port {
/** The name for the port. */
public String Name;
Expand Down Expand Up @@ -2321,6 +2373,38 @@ public static class RequestMultiplayerServerResponse {

}

/**
* Requests a party session from a particular set of builds if build alias params is provided, in any of the given
* preferred regions.
*/
public static class RequestPartyServiceRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
public Map<String,String> 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 ArrayList<String> PreferredRegions;

}

public static class RequestPartyServiceResponse {
/**
* 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.
Expand Down Expand Up @@ -2556,7 +2640,7 @@ public static class UpdateLobbyRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
public Map<String,String> CustomTags;
/**
* The private key-value pairs which are only visible to members of the lobby. Optional. Sets or updates key-value pairs on
* The private key-value pairs which are visible to all entities in the lobby. Optional. Sets or updates key-value pairs on
* the lobby. Only the current lobby owner can set lobby data. Keys may be an arbitrary string of at most 30 characters.
* The total size of all lobbyData values may not exceed 4096 bytes. Values are not individually limited. There can be up
* to 30 key-value pairs stored here. Keys are case sensitive.
Expand All @@ -2575,9 +2659,9 @@ public static class UpdateLobbyRequest {
/**
* The private key-value pairs used by the member to communicate information to other members and the owner. Optional. Sets
* or updates new key-value pairs on the caller's member data. New keys will be added with their values and existing keys
* will be updated with the new values. Visible to all members of the lobby. At most 30 key-value pairs may be stored here,
* keys are limited to 30 characters and values to 1000. The total size of all memberData values may not exceed 4096 bytes.
* Keys are case sensitive. Servers cannot specifiy this.
* will be updated with the new values. Visible to all entities in the lobby. At most 30 key-value pairs may be stored
* here, keys are limited to 30 characters and values to 1000. The total size of all memberData values may not exceed 4096
* bytes. Keys are case sensitive. Servers cannot specifiy this.
*/
public Map<String,String> MemberData;
/**
Expand Down Expand Up @@ -2627,6 +2711,8 @@ public static class UpdateLobbyRequest {
public static class UploadCertificateRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
public Map<String,String> CustomTags;
/** Forces the certificate renewal if the certificate already exists. Default is false */
public Boolean ForceUpdate;
/** The game certificate to upload. */
public Certificate GameCertificate;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ public static class EntityStatisticAttributeValue {
/** Attribute name. */
public String Name;
/** Attribute Statistic scores. */
public ArrayList<Integer> Scores;
public ArrayList<String> Scores;

}

Expand All @@ -132,7 +132,7 @@ public static class EntityStatisticValue {
/** Statistic name */
public String Name;
/** Statistic scores */
public ArrayList<Integer> Scores;
public ArrayList<String> Scores;
/** Statistic value */
public Integer Value;
/** Statistic version */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
import com.playfab.PlayFabErrors.ErrorCallback;

public class PlayFabSettings {
public static String SdkVersion = "0.199.230915";
public static String BuildIdentifier = "adobuild_javasdk_116";
public static String SdkVersionString = "JavaSDK-0.199.230915";
public static String SdkVersion = "0.205.231110";
public static String BuildIdentifier = "adobuild_javasdk_114";
public static String SdkVersionString = "JavaSDK-0.205.231110";

public static Map<String, String> RequestGetParams;
static {
Expand Down
2 changes: 1 addition & 1 deletion PlayFabClientSDK/packageMe.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ New-Item -ItemType Directory -Force ./builds
popd

cd target
Copy-Item client-sdk-0.199.230915.jar -Destination ../../builds/client-sdk-0.199.230915.jar
Copy-Item client-sdk-0.205.231110.jar -Destination ../../builds/client-sdk-0.205.231110.jar
2 changes: 1 addition & 1 deletion PlayFabClientSDK/packageMe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ mkdir -p ./builds
popd

cd target
cp client-sdk-0.199.230915.jar ../../builds/client-sdk-0.199.230915.jar
cp client-sdk-0.205.231110.jar ../../builds/client-sdk-0.205.231110.jar
2 changes: 1 addition & 1 deletion PlayFabClientSDK/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<!-- GAV & Meta -->
<groupId>com.playfab</groupId>
<artifactId>client-sdk</artifactId>
<version>0.199.230915</version>
<version>0.205.231110</version>
<name>PlayFab Client API</name>
<description>PlayFab is the unified backend platform for games — everything you need to build and operate your game, all in one place, so you can focus on creating and delivering a great player experience. </description>
<url>https://docs.microsoft.com/gaming/playfab/</url>
Expand Down
Loading

0 comments on commit 969a670

Please sign in to comment.