import { Events, Message, TextChannel, GuildChannel, AuditLogEvent, EmbedBuilder } from 'discord.js'; function getLogChannel(client: any, guildId: string): TextChannel | null { const DB = client.DB; const settings: any = DB.get('SELECT * FROM guild_settings WHERE guild_id = ?', guildId); if (!settings?.log_channel) { return null; } const channel = client.guilds.cache.get(guildId)?.channels.cache.get(settings.log_channel); if (!channel || !channel.isTextBased()) { return null; } return channel as TextChannel; } function isEventEnabled(client: any, guildId: string, event: string): boolean { const DB = client.DB; const settings: any = DB.get('SELECT log_events FROM guild_settings WHERE guild_id = ?', guildId); if (!settings?.log_events) { return false; } const activeEvents = settings.log_events.split(',').filter(Boolean); return activeEvents.includes(event); } async function sendLog(client: any, guildId: string, event: string, embed: EmbedBuilder) { if (!isEventEnabled(client, guildId, event)) { return; } const channel = getLogChannel(client, guildId); if (!channel) { return; } try { await channel.send({ embeds: [embed] }); } catch (error) { console.error(`[LOG] Error sending log (${event}):`, error); } } // Message Delete export default { name: Events.MessageDelete, async execute(message: Message) { if (!message.guild || message.author.bot) return; const embed = new EmbedBuilder() .setTitle('🗑️ Nachricht gelöscht') .setColor(0xe74c3c) .addFields( { name: 'Autor', value: `${message.author.tag} (<@${message.author.id}>)`, inline: true }, { name: 'Kanal', value: `<#${message.channelId}>`, inline: true } ) .setTimestamp(); if (message.content) { embed.addFields({ name: 'Inhalt', value: message.content.substring(0, 1024), inline: false }); } if (message.attachments.size > 0) { embed.addFields({ name: 'Anhänge', value: `${message.attachments.size} Datei(en)`, inline: true }); } await sendLog(message.client, message.guildId!, 'messages', embed); }, };