From 3c61c156137984cf61d3517d4d9633ca6de072f6 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sun, 30 Mar 2025 15:08:04 -0400 Subject: Bot now scans for threads and automatically joins them --- bot/src/events/ClientReady.js | 18 ++++++++++++++++++ bot/src/events/ThreadCreate.js | 8 ++++++++ bot/src/events/ThreadListSync.js | 13 +++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 bot/src/events/ThreadCreate.js create mode 100644 bot/src/events/ThreadListSync.js (limited to 'bot/src') diff --git a/bot/src/events/ClientReady.js b/bot/src/events/ClientReady.js index 9669287..b97af1f 100644 --- a/bot/src/events/ClientReady.js +++ b/bot/src/events/ClientReady.js @@ -32,6 +32,24 @@ export default { await botActivity(client); await QuoteOfTheDay(client); + await client.guilds.cache.forEach(guild => { + let threadCount = 0; + + guild.channels.cache.forEach(channel => { + if (channel.threads) { + threadCount += channel.threads.cache.size; + channel.threads.cache.forEach(thread => { + if (!thread.members.cache.has(client.user.id)) { + thread.join() + .catch(error => console.error(`[X] Failed to join thread ${thread.name}:`, error)); + } + }); + } + }); + + console.log(`[>] Processed threads in guild: ${guild.name} | ${threadCount} Threads`); + }); + if (process.env.NODE_ENV !== 'development') { const readyEmbed = new EmbedBuilder() .setAuthor({name: 'AleeBot Status', iconURL: client.user.avatarURL()}) diff --git a/bot/src/events/ThreadCreate.js b/bot/src/events/ThreadCreate.js new file mode 100644 index 0000000..61cb217 --- /dev/null +++ b/bot/src/events/ThreadCreate.js @@ -0,0 +1,8 @@ +import { Events } from 'discord.js'; + +export default { + name: Events.ThreadCreate, + async execute(thread) { + await thread.join(thread.id); + } +}; diff --git a/bot/src/events/ThreadListSync.js b/bot/src/events/ThreadListSync.js new file mode 100644 index 0000000..00657e6 --- /dev/null +++ b/bot/src/events/ThreadListSync.js @@ -0,0 +1,13 @@ +import { Events } from 'discord.js'; + +export default { + name: Events.ThreadListSync, + async execute(threads) { + await threads.forEach(thread => { + if (!thread.members.cache.has(threads.client.user.id)) { + thread.join() + .catch(error => console.error(`[X] Failed to join thread ${thread.name}:`, error)); + } + }); + } +}; -- cgit v1.2.3