run method

  1. @override
void run(
  1. String label,
  2. List<String> args
)

Implementation

@override
void run(String label, List<String> args) {
  if (args.length > 1) {
    print('Usage: room ${getUsage()}');
    return;
  }
  final page = args.isEmpty ? 1 : int.tryParse(args[0]);
  if (page == null || page < 1) {
    print("Invalid page number");
    return;
  }
  final rooms = roomManager.rooms
      .skip((page - 1) * kPageSize)
      .take(kPageSize + 1)
      .toList();
  print("${rooms.length} room${rooms.length == 1 ? '' : 's'} (Page $page):");
  if (rooms.isEmpty) {
    print("No rooms found");
    return;
  }
  for (final room in rooms.asMap().entries.take(kPageSize)) {
    print(
      "${room.key + 1}. ${encodeRoomCode(room.value.roomId)} (${room.value.players.length} players)",
    );
  }
  if (rooms.length > kPageSize) {
    print("More rooms available. Use 'rooms ${page + 1}' to see more.");
  }
}