addRoom method
SwampRoom?
addRoom( - Channel owner, {
- Channel? maxPlayers,
- RoomFlags roomFlags = const RoomFlags(),
})
Implementation
SwampRoom? addRoom(
Channel owner, {
Channel? maxPlayers,
RoomFlags roomFlags = const RoomFlags(),
}) {
var room = getChannelRoom(owner);
if (room != null) {
_sendCreationFailed(owner, CreationFailedReason.inRoom);
return null;
}
var roomId = generateRandomRoomId();
while (_rooms.contains(SwampRoom.mock(roomId))) {
roomId = generateRandomRoomId();
}
if (roomFlags.isDarkRoom && config.noDarkRooms) {
_sendCreationFailed(owner, CreationFailedReason.unknown);
return null;
}
if (maxPlayers == null || maxPlayers > config.maxPlayers) {
maxPlayers = config.maxPlayers;
}
room = SwampRoom._(
roomId,
roomFlags: roomFlags,
application: _application[owner],
maxPlayers: maxPlayers,
);
_rooms.add(room);
_joined[owner] = room;
room._playerChannels[owner] = kAuthorityChannel;
sendRoomInfo(owner);
return room;
}