acceptMatch method
This API works with the following fleet types: EC2, Anywhere, Container
Registers a player's acceptance or rejection of a proposed FlexMatch match. A matchmaking configuration may require player acceptance; if so, then matches built with that configuration cannot be completed unless all players accept the proposed match within a specified time limit.
When FlexMatch builds a match, all the matchmaking tickets involved in the
proposed match are placed into status REQUIRES_ACCEPTANCE.
This is a trigger for your game to get acceptance from all players in each
ticket. Calls to this action are only valid for tickets that are in this
status; calls for tickets not in this status result in an error.
To register acceptance, specify the ticket ID, one or more players, and an
acceptance response. When all players have accepted, Amazon GameLift
Servers advances the matchmaking tickets to status PLACING,
and attempts to create a new game session for the match.
If any player rejects the match, or if acceptances are not received before a specified timeout, the proposed match is dropped. Each matchmaking ticket in the failed match is handled as follows:
-
If the ticket has one or more players who rejected the match or failed to
respond, the ticket status is set
CANCELLEDand processing is terminated. -
If all players in the ticket accepted the match, the ticket status is
returned to
SEARCHINGto find a new match.
Add FlexMatch to a game client
FlexMatch events (reference)
May throw InternalServiceException.
May throw InvalidRequestException.
May throw NotFoundException.
May throw UnsupportedRegionException.
Parameter acceptanceType :
Player response to the proposed match.
Parameter playerIds :
A unique identifier for a player delivering the response. This parameter
can include one or multiple player IDs.
Parameter ticketId :
A unique identifier for a matchmaking ticket. The ticket must be in status
REQUIRES_ACCEPTANCE; otherwise this request will fail.
Implementation
Future<void> acceptMatch({
required AcceptanceType acceptanceType,
required List<String> playerIds,
required String ticketId,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'GameLift.AcceptMatch'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'AcceptanceType': acceptanceType.value,
'PlayerIds': playerIds,
'TicketId': ticketId,
},
);
}