diff --git a/src/utils/client.ts b/src/utils/client.ts
index f443d24..f07c8aa 100644
--- a/src/utils/client.ts
+++ b/src/utils/client.ts
@@ -50,7 +50,7 @@
     > = {};
     fetchedCommands = new Collection<string, Discord.ApplicationCommand>();
     constructor(database: typeof NucleusClient.prototype.database) {
-        super({ intents: 0b1100011011011111111111 });
+        super({ intents: 3276543 });
         this.database = database;
     }
 }
diff --git a/src/utils/database.ts b/src/utils/database.ts
index b6864b8..8f37466 100644
--- a/src/utils/database.ts
+++ b/src/utils/database.ts
@@ -46,6 +46,19 @@
         return entry ?? {};
     }
 
+    async updateAllGuilds() {
+        const guilds = await this.guilds.find().toArray();
+        for (const guild of guilds) {
+            let guildObj;
+            try {
+                guildObj = await client.guilds.fetch(guild.id);
+            } catch (e) {
+                guildObj = null;
+            }
+            if(!guildObj) await this.delete(guild.id);
+        }
+    }
+
     async read(guild: string): Promise<GuildConfig> {
         // console.log("Guild read")
         const entry = await this.guilds.findOne({ id: guild });
