import { EmbedBuilder, Events, Guild, TextChannel, User } from "discord.js"; import bot from "../../core/classes/Bot"; import Event from "../../core/classes/Event"; import GuildConfig from "../../core/schemas/GuildConfig"; import Embed from "../../core/classes/Embed"; import { useI18n } from "../../core/classes/Interaction"; export default class guildBanAdd extends Event { constructor(bot: bot) { super(bot, { name: Events.GuildBanAdd, description: 'Guildban event', once: false }) } async exec(guild: Guild, user: User) { const i18n = useI18n(); const lang = await GuildConfig.findOne({ guildId: guild.id }); const audit = (await guild.fetchAuditLogs()).entries.first(); if (!audit) return; const target = audit.executor; const bannedMember = user.id === target?.id ? target.tag : `${i18n.twl(lang?.lang ?? "en", "guildbanadd.notfound")}`; try { const embed = new EmbedBuilder() .setColor('Red') .setTimestamp() // Добавляет временную метку .setFooter({ text: `${this.bot?.user?.username}`, iconURL: `${this.bot?.user?.displayAvatarURL({ size: 32 })}` // Аватар бота, если client передан }) .setAuthor({ name: `${i18n.twl(lang?.lang ?? "en", "logs.title")}` }) .setTitle(`${i18n.twl(lang?.lang ?? "en", "guildbanadd.memberbanned")}`) .setThumbnail(`${guild.iconURL({ size: 1024, extension: 'jpg' })}`) .addFields( { name: `${i18n.twl(lang?.lang ?? "en", "guildbanadd.bannedmember")}`, value: `${bannedMember}` } ) if (lang?.lang && lang?.logs?.enabled && lang?.logs?.channelId) (await guild?.channels.fetch(lang?.logs.channelId) as TextChannel)?.send({ embeds: [embed] }) } catch (error) { console.log(error) } } }