diff --git a/src/utils/commandRegistration/getFilesInFolder.ts b/src/utils/commandRegistration/getFilesInFolder.ts
index 875e0b0..f5131bb 100644
--- a/src/utils/commandRegistration/getFilesInFolder.ts
+++ b/src/utils/commandRegistration/getFilesInFolder.ts
@@ -1,9 +1,9 @@
 import fs from "fs";
 
 export default async function getSubcommandsInFolder(path: string, indent: string = "") {
-    const files = fs.readdirSync(path, { withFileTypes: true }).filter(
-        file => !file.name.endsWith(".ts") && !file.name.endsWith(".map")
-    );
+    const files = fs
+        .readdirSync(path, { withFileTypes: true })
+        .filter((file) => !file.name.endsWith(".ts") && !file.name.endsWith(".map"));
     const subcommands = [];
     const subcommandGroups = [];
     let errors = 0;
@@ -15,7 +15,7 @@
                 subcommandGroups.push(await import(`../../../${path}/${file.name}/_meta.js`));
             } else if (file.name.endsWith(".js")) {
                 // If its a file
-                console.log(`│  ${indent}├─ Loading subcommand ${file.name}`)
+                console.log(`│  ${indent}├─ Loading subcommand ${file.name}`);
                 subcommands.push(await import(`../../../${path}/${file.name}`));
             }
         } catch (e) {
@@ -23,5 +23,5 @@
             errors++;
         }
     }
-    return {subcommands, subcommandGroups, errors};
+    return { subcommands, subcommandGroups, errors };
 }
