Per docs, if any member of a party sends matchmaking/queue, all members will also auto-queue and receive a matchmaking/queuesJoined event. A side effect of this is that if they do not have all the assets for the requested queue their game will crash on attempting to launch the battle.
We need some way for a client to communicate what its readiness is in relation to the potential queues, so it can be shared with other party member's clients, and potentially warn/block joins if appropriate.
We have lobby/updateClientStatus for lobbies, but unlike a lobby the party has no knowledge of the matchmaking queue(s) currently.
My thought is that we could add to the partyState like so:
...
members: {
userId: UserId;
joinedAt: UnixTime;
queueReadiness?: {
[k:string]:{
isReady?:boolean,
assetStatus?: "missing" | "downloading" | "complete";
}[];
The implied purpose of the [k:string] is to hold the queue ID for each queue, but the server will not need to validate it. Instead, each client can do a check against it's own list of known queues.
Of course this means we also need to add a matchmaking/updateClientStatus request to add to go along with it.
Per docs, if any member of a party sends
matchmaking/queue, all members will also auto-queue and receive amatchmaking/queuesJoinedevent. A side effect of this is that if they do not have all the assets for the requested queue their game will crash on attempting to launch the battle.We need some way for a client to communicate what its readiness is in relation to the potential queues, so it can be shared with other party member's clients, and potentially warn/block joins if appropriate.
We have
lobby/updateClientStatusfor lobbies, but unlike a lobby the party has no knowledge of the matchmaking queue(s) currently.My thought is that we could add to the partyState like so:
... members: { userId: UserId; joinedAt: UnixTime; queueReadiness?: { [k:string]:{ isReady?:boolean, assetStatus?: "missing" | "downloading" | "complete"; }[];The implied purpose of the
[k:string]is to hold the queue ID for each queue, but the server will not need to validate it. Instead, each client can do a check against it's own list of known queues.Of course this means we also need to add a
matchmaking/updateClientStatusrequest to add to go along with it.