Fixed all typescript errors
diff --git a/src/commands/server/buttons.ts b/src/commands/server/buttons.ts
index 61db825..e4bda0d 100644
--- a/src/commands/server/buttons.ts
+++ b/src/commands/server/buttons.ts
@@ -134,7 +134,7 @@
         let i: Discord.ButtonInteraction | Discord.ChannelSelectMenuInteraction | Discord.StringSelectMenuInteraction;
         try {
             i = await interaction.channel!.awaitMessageComponent({
-                filter: (i) => i.user.id === interaction.user.id,
+                filter: (i: Discord.Interaction) => i.user.id === interaction.user.id,
                 time: 300000
             }) as Discord.ButtonInteraction | Discord.ChannelSelectMenuInteraction | Discord.StringSelectMenuInteraction;
         } catch (e) {
diff --git a/src/commands/settings/autopublish.ts b/src/commands/settings/autopublish.ts
index f2c367f..1dc97e0 100644
--- a/src/commands/settings/autopublish.ts
+++ b/src/commands/settings/autopublish.ts
@@ -53,7 +53,7 @@
         let i: Discord.ButtonInteraction | Discord.ChannelSelectMenuInteraction;
         try {
             i = await interaction.channel!.awaitMessageComponent({
-                filter: (i) => i.user.id === interaction.user.id,
+                filter: (i: Discord.Interaction) => i.user.id === interaction.user.id,
                 time: 300000
             }) as Discord.ButtonInteraction | Discord.ChannelSelectMenuInteraction;
         } catch (e) {
diff --git a/src/commands/settings/logs/attachment.ts b/src/commands/settings/logs/attachment.ts
index a3b24ff..8331043 100644
--- a/src/commands/settings/logs/attachment.ts
+++ b/src/commands/settings/logs/attachment.ts
@@ -72,7 +72,7 @@
         let i: Discord.ButtonInteraction | Discord.SelectMenuInteraction;
         try {
             i = (await interaction.channel!.awaitMessageComponent({
-                filter: (i) => i.user.id === interaction.user.id,
+                filter: (i: Discord.Interaction) => i.user.id === interaction.user.id,
                 time: 300000
             })) as Discord.ButtonInteraction | Discord.SelectMenuInteraction;
         } catch (e) {
diff --git a/src/commands/settings/logs/warnings.ts b/src/commands/settings/logs/warnings.ts
index 25f9064..24249a2 100644
--- a/src/commands/settings/logs/warnings.ts
+++ b/src/commands/settings/logs/warnings.ts
@@ -61,7 +61,7 @@
         let i: Discord.ButtonInteraction | Discord.SelectMenuInteraction;
         try {
             i = (await interaction.channel!.awaitMessageComponent({
-                filter: (i) => i.user.id === interaction.user.id,
+                filter: (i: Discord.Interaction) => i.user.id === interaction.user.id,
                 time: 300000
             })) as Discord.ButtonInteraction | Discord.SelectMenuInteraction;
         } catch (e) {
diff --git a/src/context/messages/purgeto.ts b/src/context/messages/purgeto.ts
index b0211ec..4627bf2 100644
--- a/src/context/messages/purgeto.ts
+++ b/src/context/messages/purgeto.ts
@@ -1,7 +1,7 @@
 import confirmationMessage from '../../utils/confirmationMessage.js';
 import EmojiEmbed from '../../utils/generateEmojiEmbed.js';
 import { LoadingEmbed } from '../../utils/defaults.js';
-import Discord, { ActionRowBuilder, ButtonBuilder, ButtonStyle, ContextMenuCommandBuilder, GuildTextBasedChannel, MessageContextMenuCommandInteraction } from "discord.js";
+import Discord, { ActionRowBuilder, ButtonBuilder, ButtonStyle, ContextMenuCommandBuilder, GuildTextBasedChannel, Message, MessageContextMenuCommandInteraction } from "discord.js";
 import client from "../../utils/client.js";
 import getEmojiByName from '../../utils/getEmojiByName.js';
 import { JSONTranscriptFromMessageArray, JSONTranscriptToHumanReadable } from "../../utils/logTranscripts.js";
@@ -184,7 +184,8 @@
         }
     };
     log(data);
-    const transcript = JSONTranscriptToHumanReadable(JSONTranscriptFromMessageArray(deleted.map((m) => m as Discord.Message))!);
+    const messages: Message[] = deleted.map(m => m).filter(m => m instanceof Message).map(m => m as Message);
+    const transcript = JSONTranscriptToHumanReadable(JSONTranscriptFromMessageArray(messages)!);
     const attachmentObject = {
         attachment: Buffer.from(transcript),
         name: `purge-${channel.id}-${Date.now()}.txt`,
diff --git a/src/events/guildMemberUpdate.ts b/src/events/guildMemberUpdate.ts
index b674060..5788f61 100644
--- a/src/events/guildMemberUpdate.ts
+++ b/src/events/guildMemberUpdate.ts
@@ -106,7 +106,7 @@
     }
     if (
         (before.communicationDisabledUntilTimestamp ?? 0) < Date.now() &&
-        (after.communicationDisabledUntil ?? 0) > Date.now()
+        new Date(after.communicationDisabledUntil ?? 0).getTime() > Date.now()
     ) {
         await client.database.history.create(
             "mute",
diff --git a/src/utils/dualCollector.ts b/src/utils/dualCollector.ts
index 072f73f..0b05779 100644
--- a/src/utils/dualCollector.ts
+++ b/src/utils/dualCollector.ts
@@ -10,15 +10,14 @@
     try {
         out = await new Promise((resolve, _reject) => {
             const mes = m
-                .createMessageComponentCollector({
-                    filter: (m) => interactionFilter(m),
-                    time: 300000
-                })
-                .on("collect", (m) => {
+            .createMessageComponentCollector({
+                filter: (m) => interactionFilter(m),
+                time: 300000
+            })
+            .on("collect", (m) => {
                     resolve(m);
                 });
-            const int = m.channel
-                .createMessageCollector({
+            const int = m.channel.createMessageCollector({
                     filter: (m) => messageFilter(m),
                     time: 300000
                 })
diff --git a/src/utils/singleNotify.ts b/src/utils/singleNotify.ts
index 8e3aa60..6bf63e1 100644
--- a/src/utils/singleNotify.ts
+++ b/src/utils/singleNotify.ts
@@ -1,6 +1,7 @@
 import client from "./client.js";
 import EmojiEmbed from "./generateEmojiEmbed.js";
 import { Record as ImmutableRecord } from "immutable";
+import type { TextChannel, ThreadChannel, NewsChannel } from "discord.js";
 
 const severitiesType = ImmutableRecord({
     Critical: "Danger",
@@ -31,20 +32,20 @@
         const channel = await client.channels.fetch(data.logging.staff.channel);
         if (!channel) return;
         if (!channel.isTextBased()) return;
+        const textChannel = channel as TextChannel | ThreadChannel | NewsChannel;
+        let messageData = {embeds: [
+            new EmojiEmbed()
+                .setTitle(`${severity} notification`)
+                .setDescription(message)
+                .setStatus(severities.get(severity))
+                .setEmoji("CONTROL.BLOCKCROSS")
+        ]}
         if (pings) {
-            await channel.send({
+            messageData = Object.assign(messageData, {
                 content: pings.map((ping) => `<@${ping}>`).join(" ")
             });
         }
-        await channel.send({
-            embeds: [
-                new EmojiEmbed()
-                    .setTitle(`${severity} notification`)
-                    .setDescription(message)
-                    .setStatus(severities.get(severity))
-                    .setEmoji("CONTROL.BLOCKCROSS")
-            ]
-        });
+        await textChannel.send(messageData);
     } catch (err) {
         console.error(err);
     }