From 1c722629dc58ed7946d31839ba38e5344d513267 Mon Sep 17 00:00:00 2001 From: Vermium Sifell Date: Mon, 30 May 2022 18:26:00 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20better=20audit=20log=20file=20fo?= =?UTF-8?q?r=20guildMemberRemove?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/events/guildMemberRemove/audits.ts | 64 +++++++++++++++----------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/src/events/guildMemberRemove/audits.ts b/src/events/guildMemberRemove/audits.ts index 6d1e828..52204f8 100644 --- a/src/events/guildMemberRemove/audits.ts +++ b/src/events/guildMemberRemove/audits.ts @@ -7,49 +7,57 @@ import getEmbedConfig from "../../helpers/getEmbedConfig"; export default { execute: async (member: GuildMember) => { - const { footerText, footerIcon, errorColor } = await getEmbedConfig( - member.guild - ); + const { client, guild } = member; const guildData = await guildSchema.findOne({ guildId: member.guild.id }); - - const { client } = member; - - if (guildData === null) return; - + if (!guildData) { + throw new Error("Could not find guild"); + } if (guildData.audits.status !== true) return; - if (!guildData.audits.channelId) return; + if (!guildData.audits.channelId) { + throw new Error("Channel not found"); + } - const channel = client.channels.cache.get(`${guildData.audits.channelId}`); + const embedConfig = await getEmbedConfig(guild); - if (channel === null) return; + const channel = client.channels.cache.get(guildData.audits.channelId); + if (channel?.type !== "GUILD_TEXT") { + throw new Error("Channel must be a text channel"); + } - (channel as TextChannel) + const embed = new MessageEmbed() + .setTimestamp(new Date()) + .setAuthor({ + name: "Member Left", + iconURL: + "https://img.icons8.com/color-glass/48/000000/user-male-circle.png", + }) + .setFooter({ + text: embedConfig.footerText, + iconURL: embedConfig.footerIcon, + }); + + channel .send({ embeds: [ - new MessageEmbed() - .setColor(errorColor) - .setAuthor({ - name: "Member Left", - iconURL: member.user.displayAvatarURL(), - }) - .setDescription(`${member.user} ${member.user.tag}`) - .setTimestamp() - .setFooter({ - text: footerText, - iconURL: footerIcon, - }), + embed + .setColor(embedConfig.errorColor) + .setDescription(`${member.user} - (${member.user.tag})`) + .addFields([ + { + name: "Account Age", + value: `${member.user.createdAt}`, + }, + ]), ], }) .then(async () => { - logger.info( + logger.debug( `Audit log sent for event guildMemberRemove in guild ${member.guild.name} (${member.guild.id})` ); }) .catch(async () => { - logger.error( - `Audit log failed to send for event guildMemberRemove in guild ${member.guild.name} (${member.guild.id})` - ); + throw new Error("Audit log failed to send"); }); }, };