diff --git a/src/client_server/room.rs b/src/client_server/room.rs index f73d544..cc7dba6 100644 --- a/src/client_server/room.rs +++ b/src/client_server/room.rs @@ -65,7 +65,19 @@ pub async fn create_room_route( let mut content = ruma::events::room::create::CreateEventContent::new(sender_user.clone()); content.federate = body.creation_content.federate; content.predecessor = body.creation_content.predecessor.clone(); - content.room_version = RoomVersionId::Version6; + content.room_version = match body.room_version.clone() { + Some(room_version) => { + if room_version == RoomVersionId::Version5 || room_version == RoomVersionId::Version6 { + room_version + } else { + return Err(Error::BadRequest( + ErrorKind::UnsupportedRoomVersion, + "This server does not support that room version.", + )); + } + } + None => RoomVersionId::Version6, + }; // 1. The room create event db.rooms.build_and_append_pdu(