diff --git a/src/database/guards/mod.rs b/src/database/guards/mod.rs
index be4a89d38f04431166e0fbbaa57b57fd5ab1fca6..cf046ce515a4385f08e6812627cff255623b4e08 100644
--- a/src/database/guards/mod.rs
+++ b/src/database/guards/mod.rs
@@ -2,4 +2,3 @@ pub mod reference;
 pub mod user;
 
 pub use reference::Ref;
-// pub use user::*;
diff --git a/src/notifications/events.rs b/src/notifications/events.rs
index 96c57d4a86a7c35d470c993edb3fec64ace6a6e5..0e3be5dd56a14fcf0869fc751a4b296b45cf90ee 100644
--- a/src/notifications/events.rs
+++ b/src/notifications/events.rs
@@ -33,6 +33,7 @@ pub enum ClientboundNotification {
     Authenticated,
     Ready {
         users: Vec<User>,
+        channels: Vec<Channel>
     },
 
     /*MessageCreate {
diff --git a/src/notifications/payload.rs b/src/notifications/payload.rs
index c63a7302931339306a94c466c3561d8710ba3ecc..100a521f12f41b9927e9078c880a59bf2ae46a41 100644
--- a/src/notifications/payload.rs
+++ b/src/notifications/payload.rs
@@ -4,10 +4,7 @@ use crate::{
     util::result::{Error, Result},
 };
 use futures::StreamExt;
-use mongodb::{
-    bson::{doc, from_bson, Bson},
-    options::FindOptions,
-};
+use mongodb::{bson::{Bson, doc, from_bson}, options::FindOptions};
 
 use super::websocket::is_online;
 
@@ -61,8 +58,48 @@ pub async fn generate_ready(mut user: User) -> Result<ClientboundNotification> {
         }
     }
 
-    user.online = Some(is_online(&user.id));
+    let mut cursor = get_collection("channels")
+        .find(
+            doc! {
+                "$or": [
+                    {
+                        "type": "SavedMessages",
+                        "user": &user.id
+                    },
+                    {
+                        "type": "DirectMessage",
+                        "recipients": &user.id,
+                        "active": true
+                    },
+                    {
+                        "type": "Group",
+                        "recipients": &user.id
+                    }
+                ]
+            },
+            None
+        )
+        .await
+        .map_err(|_| Error::DatabaseError {
+            operation: "find",
+            with: "channels",
+        })?;
+    
+    let mut channels = vec![];
+    while let Some(result) = cursor.next().await {
+        if let Ok(doc) = result {
+            channels.push(
+                from_bson(Bson::Document(doc))
+                    .map_err(|_| Error::DatabaseError {
+                        operation: "from_bson",
+                        with: "channel",
+                    })?
+            );
+        }
+    }
+
+    user.online = Some(true);
     users.push(user);
 
-    Ok(ClientboundNotification::Ready { users })
+    Ok(ClientboundNotification::Ready { users, channels })
 }