tty/src/events/client/guildDelete.ts

51 lines
1.1 KiB
TypeScript

import { Events, EmbedBuilder, Guild } from 'discord.js';
import { prisma } from '@lib/prisma';
import { Bot as BotPrisma } from '@prisma/client';
export default {
name: Events.GuildDelete,
async execute(guild: Guild) {
const botData: BotPrisma = await prisma.bot.findUnique({
where: {
id: 1,
},
include: {
buyers: {
select: {
id: true,
},
},
},
});
const buyerNotification: EmbedBuilder = new EmbedBuilder()
.setTitle(`${guild.client.user.username} leaved a server`)
.setColor('#cd5c5c')
.setFooter({
text: guildData.footer,
})
.setDescription(`
Name: ${guild.name}
Owner id: ${guild.ownerId}
Member: ${guild.memberCount}
`)
.setTimestamp();
await Promise.all(
botData.buyers.map(async (buyer) => {
try {
const user = await guild.client.users.fetch(buyer.id);
const dm = await user.createDM();
await dm.send ({
embeds: [
buyerNotification,
],
});
await new Promise(res => setTimeout(res, 1000));
}
catch (err) {
console.warn(`⚠️ | ${buyer.id} : ${err as Error}`);
return;
}
}),
);
},
};