import { DebugBuilder } from "../../modules/debugger.mjs"; const log = new DebugBuilder("server", "discordBot.events.messageCreate"); import dotenv from "dotenv"; dotenv.config(); import { Events } from "discord.js"; import { gptInteraction } from "../addons/gptInteraction.mjs"; import { linkCop } from "../addons/linkCop.mjs"; import PresenceManager from "../modules/presenceManager.mjs"; import { getGuildConfig } from "../../modules/mongo-wrappers/mongoConfigWrappers.mjs"; export const name = Events.MessageCreate; export async function execute(nodeIo, message) { // Get the ignored channels from the server config const IGNORED_CHANNELS = await getGuildConfig( message.guild.id, "ignoredChannels", ); // Ignore ignored channels if ( !Array.isArray(IGNORED_CHANNELS) || (Array.isArray(IGNORED_CHANNELS) && IGNORED_CHANNELS.includes(message.channel.id)) ) { return; } // Ignore messages from a bot if (message.author.bot) { return; } log.INFO("Message create", message); // Set presence for reading message const messagePm = new PresenceManager(message.client); await messagePm.setPresence("online", "WATCHING", "latest messages"); // Check if the message mentions the bot if (message.mentions.users.has(nodeIo.serverClient.user.id)) { const interaction = await gptInteraction(nodeIo, message); // Reset the presence await messagePm.resetToDefault(); return interaction; } // Check if the message contains a link in a channel it shouldn't await linkCop(nodeIo, message); // Reset the presence await messagePm.resetToDefault(); }