acceptMatch method
- required AcceptanceType acceptanceType,
- required List<
String> playerIds, - required String ticketId,
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 the
ticket. Acceptances are only valid for tickets when they are in this
status; all other acceptances result in an error.
To register acceptance, specify the ticket ID, a response, and one or more
players. Once all players have registered acceptance, the matchmaking
tickets advance to status PLACING
, where a new game session
is created for the match.
If any player rejects the match, or if acceptances are not received before
a specified timeout, the proposed match is dropped. The matchmaking
tickets are then handled in one of two ways: For tickets where one or more
players rejected the match, the ticket status is returned to
SEARCHING
to find a new match. For tickets where one or more
players failed to respond, the ticket status is set to
CANCELLED
, and processing is terminated. A new matchmaking
request for these players can be submitted as needed.
Learn more
Add FlexMatch to a Game Client
Related operations
May throw InvalidRequestException. May throw NotFoundException. May throw InternalServiceException. 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 {
ArgumentError.checkNotNull(acceptanceType, 'acceptanceType');
ArgumentError.checkNotNull(playerIds, 'playerIds');
ArgumentError.checkNotNull(ticketId, 'ticketId');
_s.validateStringLength(
'ticketId',
ticketId,
0,
128,
isRequired: true,
);
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.toValue(),
'PlayerIds': playerIds,
'TicketId': ticketId,
},
);
}