diff --git a/src/events/guildBanAdd.ts b/src/events/guildBanAdd.ts
index 93f4ec8..6036ddf 100644
--- a/src/events/guildBanAdd.ts
+++ b/src/events/guildBanAdd.ts
@@ -8,7 +8,7 @@
 
 export async function callback(client: NucleusClient, ban: GuildBan) {
     const { log, isLogging, NucleusColors, entry, renderUser, renderDelta, getAuditLog } = client.logger;
-    await statsChannelRemove(client, undefined, ban.guild, ban.user);
+    await statsChannelRemove(ban.user, ban.guild);
     purgeByUser(ban.user.id, ban.guild.id);
     if (!(await isLogging(ban.guild.id, "guildMemberPunish"))) return;
     const auditLog: GuildAuditLogsEntry | undefined = (await getAuditLog(ban.guild, AuditLogEvent.MemberBanAdd)).filter(
diff --git a/src/events/memberLeave.ts b/src/events/memberLeave.ts
index c4ce74e..e80ea0b 100644
--- a/src/events/memberLeave.ts
+++ b/src/events/memberLeave.ts
@@ -9,7 +9,7 @@
 export async function callback(client: NucleusClient, member: GuildMember) {
     const startTime = Date.now() - 10 * 1000;
     purgeByUser(member.id, member.guild.id);
-    await statsChannelRemove(client, member);
+    await statsChannelRemove(member.user, member.guild);
     const { getAuditLog, isLogging, log, NucleusColors, entry, renderUser, renderDelta } = client.logger;
     if (!(await isLogging(member.guild.id, "guildMemberUpdate"))) return;
     const kickAuditLog = (await getAuditLog(member.guild as Guild, AuditLogEvent.MemberKick)).filter(
diff --git a/src/utils/database.ts b/src/utils/database.ts
index 19aa00b..4f94712 100644
--- a/src/utils/database.ts
+++ b/src/utils/database.ts
@@ -16,10 +16,8 @@
 
 let username, password;
 
-// @ts-expect-error
-if (Object.keys(config.mongoOptions).includes("username")) username = encodeURIComponent(config.mongoOptions.username);
-// @ts-expect-error
-if (Object.keys(config.mongoOptions).includes("password")) password = encodeURIComponent(config.mongoOptions.password);
+if ("username" in config.mongoOptions) username = encodeURIComponent(config.mongoOptions.username as string);
+if ("password" in config.mongoOptions) password = encodeURIComponent(config.mongoOptions.password as string);
 
 const mongoClient = new MongoClient(
     username
@@ -224,7 +222,7 @@
 interface findDocSchema {
     channelID: string;
     messageID: string;
-    transcript: string;
+    code: string;
 }
 
 export class Transcript {
