writeTournamentRecord method

  1. @override
Future<LeaderboardRecord> writeTournamentRecord({
  1. required Session session,
  2. required String tournamentId,
  3. String? metadata,
  4. LeaderboardOperator? operator,
  5. int? score,
  6. int? subscore,
})
override

Submitting scores

Players can submit scores, subscores and metadata to the tournament.

Implementation

@override
Future<model.LeaderboardRecord> writeTournamentRecord({
  required model.Session session,
  required String tournamentId,
  String? metadata,
  LeaderboardOperator? operator,
  int? score,
  int? subscore,
}) async {
  final res = await _client.writeTournamentRecord(
    api.WriteTournamentRecordRequest(
      tournamentId: tournamentId,
      record: api.WriteTournamentRecordRequest_TournamentRecordWrite(
        metadata: metadata,
        operator: () {
          switch (operator) {
            case LeaderboardOperator.best:
              return api.Operator.BEST;
            case LeaderboardOperator.decrement:
              return api.Operator.DECREMENT;
            case LeaderboardOperator.increment:
              return api.Operator.INCREMENT;
            case LeaderboardOperator.noOverride:
              return api.Operator.NO_OVERRIDE;
            case LeaderboardOperator.set:
              return api.Operator.SET;
            default:
              return null;
          }
        }(),
        score: score != null ? Int64(score) : null,
        subscore: subscore != null ? Int64(subscore) : null,
      ),
    ),
    options: _getSessionCallOptions(session),
  );

  return model.LeaderboardRecord.fromDto(res);
}