From 6608d05f6fc6506693448f89bae7d1700740a320 Mon Sep 17 00:00:00 2001 From: sarah Date: Mon, 23 Mar 2026 10:47:48 +0100 Subject: [PATCH] Fix: Split channelEvent.ts into separate create/delete files The combined file with named exports caused 'once' property error. Each event file must use 'export default'. Co-Authored-By: Claude Opus 4.6 --- src/events/channelCreate.ts | 38 +++++++++++++++++++ .../{channelEvent.ts => channelDelete.ts} | 20 +--------- 2 files changed, 39 insertions(+), 19 deletions(-) create mode 100644 src/events/channelCreate.ts rename src/events/{channelEvent.ts => channelDelete.ts} (70%) diff --git a/src/events/channelCreate.ts b/src/events/channelCreate.ts new file mode 100644 index 0000000..4d2cccf --- /dev/null +++ b/src/events/channelCreate.ts @@ -0,0 +1,38 @@ +import { Events, GuildChannel, EmbedBuilder } from 'discord.js'; + +async function sendLog(client: any, guildId: string, event: string, embed: EmbedBuilder) { + const DB = client.DB; + const settings: any = DB.get('SELECT log_events FROM guild_settings WHERE guild_id = ?', guildId); + + if (!settings?.log_events) return; + const activeEvents = settings.log_events.split(',').filter(Boolean); + if (!activeEvents.includes(event)) return; + + const logSettings: any = DB.get('SELECT log_channel FROM guild_settings WHERE guild_id = ?', guildId); + if (!logSettings?.log_channel) return; + + const channel = client.guilds.cache.get(guildId)?.channels.cache.get(logSettings.log_channel); + if (!channel || !channel.isTextBased()) return; + + try { + await (channel as any).send({ embeds: [embed] }); + } catch (error) { + console.error(`[LOG] Error sending log (${event}):`, error); + } +} + +export default { + name: Events.ChannelCreate, + async execute(channel: GuildChannel) { + const embed = new EmbedBuilder() + .setTitle('📁 Channel erstellt') + .setColor(0x27ae60) + .addFields( + { name: 'Name', value: channel.name, inline: true }, + { name: 'Typ', value: channel.type.toString(), inline: true } + ) + .setTimestamp(); + + await sendLog(channel.client, channel.guild!.id, 'channels', embed); + }, +}; \ No newline at end of file diff --git a/src/events/channelEvent.ts b/src/events/channelDelete.ts similarity index 70% rename from src/events/channelEvent.ts rename to src/events/channelDelete.ts index 88dbf48..182cbbe 100644 --- a/src/events/channelEvent.ts +++ b/src/events/channelDelete.ts @@ -21,25 +21,7 @@ async function sendLog(client: any, guildId: string, event: string, embed: Embed } } -// Channel Create -export const channelCreateEvent = { - name: Events.ChannelCreate, - async execute(channel: GuildChannel) { - const embed = new EmbedBuilder() - .setTitle('📁 Channel erstellt') - .setColor(0x27ae60) - .addFields( - { name: 'Name', value: channel.name, inline: true }, - { name: 'Typ', value: channel.type.toString(), inline: true } - ) - .setTimestamp(); - - await sendLog(channel.client, channel.guild!.id, 'channels', embed); - }, -}; - -// Channel Delete -export const channelDeleteEvent = { +export default { name: Events.ChannelDelete, async execute(channel: GuildChannel) { const embed = new EmbedBuilder()