34 lines
867 B
TypeScript
34 lines
867 B
TypeScript
// 3rd party dependencies
|
|
import { GuildMember } from "discord.js";
|
|
import prisma from "../../handlers/prisma";
|
|
import { IEventOptions } from "../../interfaces/EventOptions";
|
|
import logger from "../../middlewares/logger";
|
|
import sendAuditEntry from "./components/sendAuditEntry";
|
|
import sendLeaveMessage from "./components/sendLeaveMessage";
|
|
|
|
export const options: IEventOptions = {
|
|
type: "on",
|
|
};
|
|
|
|
// Execute the function
|
|
export const execute = async (member: GuildMember) => {
|
|
const { user, guild } = member;
|
|
|
|
logger.verbose({
|
|
message: `User: ${user.tag} (${user.id}) left guild: ${guild.name} (${guild.id})`,
|
|
guild,
|
|
user,
|
|
});
|
|
|
|
await sendAuditEntry(member);
|
|
await sendLeaveMessage(member);
|
|
|
|
await prisma.guildMember.delete({
|
|
where: {
|
|
userId_guildId: {
|
|
userId: user.id,
|
|
guildId: guild.id,
|
|
},
|
|
},
|
|
});
|
|
};
|