Pragma Engine 0.0.79

August 9th, 2022

Features #

Added requestingPlayer parameter to limit access to party detail changes.

  • Description: The requestingPlayer parameter has been added to the Party plugin interface to allow plugins to decide who can change party details. For example, you can deny changes requested by a party member other than the party leader.
  • Related notes: See related integration note.

Added new account tag actions in the Unity/Unreal SDKs for Partners.

  • Description: Partner sessions can now view and bulk modify tags on player accounts via Unity and Unreal SDKs.
  • Details:
    • New SDK bindings for the following existing Partner endpoints:
      • AccountService.getAccountTagsPartnerV1(playerSocialIds: get the tags for a given list of accounts
      • AccountService.AddAccountTagsPartnerV1(playerSocialIds, tagsToAdd): add tags to multiple accounts
      • AccountService.removeAccountTagsPartnerV1(playerSocialIds, tagsToRemove): remove tags from multiple accounts
    • New endpoint and SDK binding:
      • AccountService.viewTagsPartnerV1(): retrieve all existing tags in the system

Integrations #

Add the requestingPlayer parameter to implementations of PartyPlugin.updateParty().

  • Descriptions: To enable the new requestingPlayer feature, you must complete the listed integration step.
  • Integration step: Add requestingPlayer: PartyPlayer as the first parameter of the PartyPlugin.updateParty() method. Update any references to UpdateDisplayNameV1Request to UpdateDisplayNameOperatorV1Request.
suspend fun updateParty(
requestExt: ExtUpdatePartySelectionsRequest,
party: Party, partyConfig: PartyConfig
suspend fun updateParty(
 requestingPlayer: PartyPlayer,
 requestExt: ExtUpdatePartySelectionsRequest,
 party: Party, partyConfig: PartyConfig
  • Related note: See related feature note.

If you’re using dynamicSharding support, correct columnNameOfpropertyToConsistentHash in InventoryDaoConfig by capitalizing the word Property.

  • Description: We’ve adjusted this capitalization to more accurately follow naming standards.
  • Integration step:
    • Make the following change in InventoryDaoConfig:

Migrate all instances of ShutdownV1Notification to the new RemovedV1Notification.

  • Description: We’ve replaced ShutdownV1Notification with a more accurately named notification called RemovedV1Notification. This should be used to alert clients when a player is removed from a party.
  • Integration step: Complete the following migration:

Replace all uses of authenticateOrCreateV1 with authenticateOrCreateV2.

  • Description: The authenticateOrCreateV1 http endpoint and the AuthenticateOrCreateV1Request and AuthenticateOrCreateV1Response messages have been removed.
  • Integration steps:
    • Update any usages of authenticateOrCreateV1 endpoint to the authenticateOrCreateV2 endpoint and use the corresponding AuthenticateOrCreateV2Request and AuthenticateOrCreateV2Response messages.
    • The AuthenticateOrCreateV2Response no longer contains the pragma_player_token. Instead you should use the pragma_game_token and pragma_social_token depending on what service is being connected to.
      pragma_player_tokenpragma_game_token and pragma_social_token

Update all references of the MatchFoundPlugin to the Match Lifecycle service package.

  • Description: MatchFoundPlugin’s definition has been moved from the Matchmaking service package to a Match Lifecycle service package. You’ll need to update the MatchFoundPlugin import if you’ve defined your own implementation, or update the config if you use the Pragma Engine-provided one.
  • Integration steps:
    • If you’ve defined your own implementation of MatchFoundPlugin, update the import from pragma.matchmaking.MatchFoundPlugin to pragma.matchlifecycle.MatchFoundPlugin.
    • If your config uses the Pragma Engine-provided pragma.matchmaking.DefaultMatchFoundPlugin, update it to pragma.matchlifecycle.DefaultMatchFoundPlugin.

Update all references to UpdateDisplayNameV1Request to UpdateDisplayNameOperatorV1Request.

  • Description: We’ve renamed the UpdateDisplayNameV1Request Operator RPC to match our naming standards and avoid session-type collisions.
  • Integration step: Update references to UpdateDisplayNameV1Request to capture the rename.
  • Note that If you’ve built a Portal from source instead of using the packaged portal-base, you’ll need to rebuild and redeploy Portal.

Add configuration for PaymentDaoNodeService to prepare for upcoming payments functionality.

  • Description: In preparation for upcoming payments functionality, a new DaoNodeService has been created which will require configuration.
  • Integration step: Add the following new configuration for the PaymentDaoNodeService in your YAML file:
            driver: "MYSQLDB"
            username: "<database user>"
            password: "<encrypted password>"
                1: "<database host>:<database port>/<shard>_social_orderhistory1"
                2: "<database host>:<database port>/<shard>_social_orderhistory2"