microsoft / microsoft/XBOX-Godot-Sample

[PlayFab Lobby] Expose owner-enforced member removal with prevent-rejoin

Open
#175 0 comments 0 reactions 1 assignee View on GitHub

Nobody has claimed this yet.

PlayFab
Dominant language
C++
Stars
236
Forks
21
Avg merge
6h 4m
Merged PRs (30d)
8

Description

Feature request

Expose owner-enforced removal of another Lobby member, including the native preventRejoin option. Removing a member from a title's local roster or disconnecting a gameplay peer is not equivalent to enforcing membership at the Lobby service.

Current gap

At f6c16289e939729b474e9009c5dd1ec1d23015ba, the PlayFabLobby bindings expose property updates and self-leave, but no owner removal operation.

The native SDK provides PFLobbyForceRemoveMember. A local entity must be the current lobby owner; losing ownership while the operation is pending causes asynchronous failure.

Requested behavior

  • Add an awaitable removal API on a tracked lobby, taking the target entity key and an explicit prevent_rejoin boolean. Naming should follow existing binding conventions.
  • Resolve with the normal PlayFabResult after native completion, not merely after dispatch. Surface unauthorized, invalid/disconnected-lobby, ownership-change, and SDK failures.
  • Keep member snapshots and notifications aligned with the native removal event. Do not optimistically erase a member and report success before the operation completes.
  • Preserve both behaviors: removal without barring later joins, and removal with service-enforced prevention of rejoining that lobby.
  • Document the scope: this changes Lobby membership only. It does not automatically evict a user from a Party network, implement gameplay host migration, or create a title-wide account ban.

Acceptance coverage

  1. An owner removes another member with prevent_rejoin = false; the member disappears through normal notifications and can rejoin an otherwise joinable lobby.
  2. Repeat with prevent_rejoin = true; a subsequent join of that lobby is rejected by the service.
  3. A non-owner request and an ownership-loss race return failures without falsely changing membership.
  4. Cover invalid targets, disconnected lobbies, shutdown, and failed native completions without leaked pending operations or duplicate completions.
  5. Verify snapshots are current when notifications are delivered, and document the distinction between Lobby removal and Party/gameplay disconnection.

Add focused automated coverage and record live-service verification separately when suitable accounts are available.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.