From d8a3b257f2b052d199c3e38d9e1d48d6d6c0b6bf Mon Sep 17 00:00:00 2001
From: Nyaaori <+@nyaaori.cat>
Date: Mon, 1 Nov 2021 02:22:32 +0000
Subject: [PATCH] Enable room version 4

---
 src/client_server/capabilities.rs | 6 ++----
 src/database/globals.rs           | 2 +-
 src/database/rooms.rs             | 1 -
 src/server_server.rs              | 6 +++---
 4 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/client_server/capabilities.rs b/src/client_server/capabilities.rs
index 915cd7d2..417ad29d 100644
--- a/src/client_server/capabilities.rs
+++ b/src/client_server/capabilities.rs
@@ -1,8 +1,6 @@
 use crate::{database::DatabaseGuard, Result, Ruma};
-use ruma::{
-    api::client::discovery::get_capabilities::{
-        self, Capabilities, RoomVersionStability, RoomVersionsCapability,
-    },
+use ruma::api::client::discovery::get_capabilities::{
+    self, Capabilities, RoomVersionStability, RoomVersionsCapability,
 };
 use std::collections::BTreeMap;
 
diff --git a/src/database/globals.rs b/src/database/globals.rs
index a12f4626..c2ce8a5a 100644
--- a/src/database/globals.rs
+++ b/src/database/globals.rs
@@ -151,7 +151,7 @@ impl Globals {
         // Supported and stable room versions
         let stable_room_versions = vec![RoomVersionId::V6];
         // Experimental, partially supported room versions
-        let unstable_room_versions = vec![RoomVersionId::V5];
+        let unstable_room_versions = vec![RoomVersionId::V4, RoomVersionId::V5];
 
         let s = Self {
             globals,
diff --git a/src/database/rooms.rs b/src/database/rooms.rs
index 6616305e..0bccc84f 100644
--- a/src/database/rooms.rs
+++ b/src/database/rooms.rs
@@ -1845,7 +1845,6 @@ impl Rooms {
             })
             .transpose()?;
 
-
         // If there was no create event yet, assume we are creating a room with the default
         // version right now
         let room_version_id = create_event_content
diff --git a/src/server_server.rs b/src/server_server.rs
index 19c95832..6d589475 100644
--- a/src/server_server.rs
+++ b/src/server_server.rs
@@ -2592,9 +2592,9 @@ pub async fn create_join_event_template_route(
     acl_check(sender_servername, &body.room_id, &db)?;
 
     // TODO: Conduit does not implement restricted join rules yet, we always reject
-    let join_rules_event = db
-        .rooms
-        .room_state_get(&body.room_id, &StateEventType::RoomJoinRules, "")?;
+    let join_rules_event =
+        db.rooms
+            .room_state_get(&body.room_id, &StateEventType::RoomJoinRules, "")?;
 
     let join_rules_event_content: Option<RoomJoinRulesEventContent> = join_rules_event
         .as_ref()