/** * @copyright NHCarrigan * @license Naomi's Public License * @author Naomi Carrigan */ import { ids } from "../config/ids.js"; import { notifyNameMention } from "../modules/notifyNameMention.js"; import { respondToMention } from "../modules/respondToMention.js"; import { updateMentorshipThread } from "../modules/updateMentorshipThread.js"; import type { Amari } from "../interfaces/amari.js"; import type { Message } from "discord.js"; /** * Handles the message create event from Discord. * Bootstraps all of our custom logic modules. * @param amari -- Amari's instance. * @param message -- The guild message payload from Discord. */ export const handleMessageCreate = async( amari: Amari, message: Message, ): Promise => { if (message.author.bot || message.system) { return; } if (message.author.id === ids.users.naomi && !amari.recentlyActiveChannels.has(message.channel.id)) { amari.recentlyActiveChannels.add(message.channel.id); } await updateMentorshipThread(amari, message); const mentionNotified = await respondToMention(amari, message); if (!mentionNotified) { await notifyNameMention(amari, message); } };