A holding stores entries on the server meant to be confirmed or rejected by the client. The workflow is:

  1. Create the instance of the class extending AbstractHolding.Entry with the relevant information for managing the confirmation/rejection of the entry.
  2. Notify the client via the holding’s notifyClient.
  3. On the client, receive the server’s notification, and offer a way for the player to confirm/reject. You could also have the client automatically reject/confirm under certain circumstances (i.e. a client config or player-related option).
  4. On the server, receive and handle the confirmation or rejection. The holding entry will automatically be discarded.

Entries in a holding is not persisted between sessions. Entries can also be marked to be automatically deleted after a given amount of time on the server.