getGames method

  1. @override
Future<IList<GameInfo>> getGames(
  1. PlayerID playerID
)
override

Gets a list of games on the server

Implementation

@override
Future<IList<GameInfo>> getGames(PlayerID playerID) async {
  final gms = games.values.where((g) =>
      g.read(BackendProviders.lobby).players.any((p) => p.id == playerID));
  return [
    for (final g in gms)
      GameInfo(
        status: g.read(BackendProviders.lobby).gameStatus,
        gameId: g.gameCode,
        player: g
            .read(BackendProviders.lobby)
            .players
            .firstWhere((p) => p.id == playerID)
            .name,
        players: g
            .read(BackendProviders.lobby)
            .players
            .map((p) => p.name)
            .toIList(),
        gameType: g.read(BackendProviders.lobby).config.gameType,
        creator: g.creator == playerID,
      )
  ].lock;
}