Estoy codificando un bot de moderación básico para Discord en discord.js . Pero agregando el siguiente código para responder "¡Hola!" cada vez que alguien envía un mensaje de la lista, el bot envía muchos "¡Hola!" mensajes en el canal.
client.on("message", async message =>{ if (message.content == "Hi" || message.content == "hi" || message.content == "hello" || message.content == "Hello" || message.content == "hi!" || message.content == "Hi!" || message.content == "Hello!" || message.content == "hello!") { message.channel.send(`Hello!`) } });¿Alguien puede explicar por qué sucede esto y proporcionar una solución? Traté de buscar en la web pero no pude formular la pregunta correctamente, así que no obtuve respuestas.
PD: Todavía estoy aprendiendo JavaScript y estoy codificando esto en replit.com, ¡si eso importa!
Como señaló esqew en su comentario, su bot está atascado en un ciclo de eventos al responder a su propio mensaje. Una forma sencilla de solucionar este problema sería ignorar los mensajes de todos los bots o solo los mensajes del propio bot, como se muestra a continuación.
client.on("message", async message => { // Method A: Ignore all Bots if(message.author.bot) return; // Method B: Ignore self only if(message.author.id == client.user.id) return; // Insert rest of event code here, etc... }); Ver User.bot (Discord.js Docs)