Pragma Engine 0.0.48

December 14th, 2021

  • Added new player group capabilities, such as creating new player groups, viewing information about them, and bulk adding players by tag.
    • Please note that these features are early access and require Postman. They require running against 4-demo or following the implementation steps in the player tags feature below.
  • Required integration:
    • New GameDataStrategy interface: Follow the steps in the detailed section below to adjust your implementation to migrate from setLoginDataProtoFields to the new getExtLoginData wrapper.
  • Optional integration:
    • Updated confirmation email expiration duration to be 7 days, with an optional configuration step: Add an emailTokenExpirationMinutes config into CommonConfig.yml with the desired duration

Features #

  • Added ability to create a player group and view information about it.
    • Description: We’ve added the ability to create and view details about player groups, such as a beta group.
    • Reference:
      • CreatePlayerGroupOperatorV1 allows you to create a player group with a name and optional description.
      • ViewPlayerGroupOperatorV1 displays information about all player groups. It includes which users are part of a player group, and provides information about the group name and description.
    • Postman Paths:
      • Social → RPC Operator → Account → ViewPlayerGroupOperatorV1
      • Social → RPC Operator → Account → CreatePlayerGroupOperatorV1
  • Added ability to make changes to a player group name and description.
    • Description: We’ve added the ability to make changes to player group names and descriptions.
    • Reference:
      • EditPlayerGroupOperatorV1 allows you to edit the name and description of a player group.
    • Postman Path:
      • Social → RPC Operator → Account → EditPlayerGroupOperatorV1
  • Added ability to tag user accounts on account creation.
    • Description: We’ve added the ability to add tags to player accounts on user creation. This step is required to bulk add players to a player group.
    • Reference:
      • registerEmailV1 registers a new user account using an email address. If you’re not running pragma-engine against 4-demo, you must implement the appropriate exts. Refer to 4-demo and its implementation of Pragma.Account.AccountPlugin for an example of adding tags and providing them to an account with registerEmailV1.
    • Paths:
      • Social → RPC Partner → registerEmailV1
      • platform/4-demo/demo-protos/src/main/proto/shared/accountRpcExt.proto contains ExtCreateAccountRequest
  • Added ability to get user counts of player groups, bulk add players by tag, and manage excluded player groups.
    • Description: We’ve added the ability to manage player groups using tags.
    • Reference:
      • GetPlayerCountByTagsOperatorV1 displays the number of players in a group by tag.
      • AddAccountstoPlayerGroupOperatorV1 enables adding players by tag to a player group, with an optional excluded player field.
    • Postman Paths:
      • Social → RPC Operator → Account → GetPlayerCountByTagsOperatorV1
      • Social → RPC Operator → Account →AddAccountstoPlayerGroupOperatorV1

Integration Steps #

  • New GameDataStrategy interface to increase cohesion between plugins.

    • Description: To increase cohesion between plugins, we’ve updated the GameDataStrategy interface. This change includes a data wrapper which will need to be integrated instead of using the previous builder object.
    • Integration steps:
      1. Delete any implementations of fun init(contentDataNodeService: ContentDataNodeService). No replacement is required as the plugin constructor provides access to the ContentDataNodeService.
      2. Update setLoginDataProtoFields to getExtLoginData. Create ExtLoginData, fill it out with the existing logic being passed into the builder, and return it.
      3. Locate plugin configurations for GameDataService.gameDataStrategy and update them to GameDataService.gameDataStrategyPlugin.
  • Updated confirmation email expiration duration to be 7 days, with an optional configuration step.

    • Description: Email expiration duration was previously tied to player session expiration, and has now been changed to a default of 7 days. This default can be overwritten manually via CommonConfig.yml.
    • Integration steps: Add an emailTokenExpirationMinutes line into CommonConfig.yml with the desired duration.
    • Reference:
      social:
        serviceConfigs:
          TokenSignerConfig:
            emailTokenExpirationMinutes: 10
      

Deprecations #

  • None