diff --git a/src/utils/calculate.ts b/src/utils/calculate.ts
index a58fae1..7f3b16d 100644
--- a/src/utils/calculate.ts
+++ b/src/utils/calculate.ts
@@ -1,8 +1,7 @@
 const logs = [
     "channelUpdate",
-    "channelPinsUpdate", // TODO
     "emojiUpdate",
-    "stickerUpdate", // TODO
+    "stickerUpdate",
     "guildUpdate",
     "guildMemberUpdate",
     "guildMemberPunish",
@@ -14,13 +13,12 @@
     "messageReactionUpdate",
     "messagePing",
     "messageMassPing",
-    "messageAnnounce", // TODO
+    "messageAnnounce",
     "threadUpdate",
-    "webhookUpdate", // TODO
+    "webhookUpdate",
     "guildMemberVerify",
-    "autoModeratorDeleted", // TODO
-    "nucleusSettingsUpdated", // TODO
-    ""
+    "autoModeratorDeleted", // TODO: Not implemented
+    "nucleusSettingsUpdated"
 ]
 
 const tickets = [
@@ -51,7 +49,7 @@
     let permissions = [];
     let int = (BigInt("0x" + permissionsHex)).toString(2).split('').reverse();
     for (let index in int) {
-        if (int[index] == "1") {
+        if (int[index] == "1" && array.length > index) {
             permissions.push(array[index]);
         }
     }
diff --git a/src/utils/log.ts b/src/utils/log.ts
index 55f8f4c..987e256 100644
--- a/src/utils/log.ts
+++ b/src/utils/log.ts
@@ -46,10 +46,10 @@
 
     }
 
-    async getAuditLog(guild: Discord.Guild, event) {
+    async getAuditLog(guild: Discord.Guild, event): Promise<Discord.GuildAuditLogsEntry[]>{
         await wait(250)
         let auditLog = await guild.fetchAuditLogs({type: event});
-        return auditLog;
+        return auditLog as unknown as Discord.GuildAuditLogsEntry[];
     }
 
     async log(log: any): Promise<void> {
