Estoy tratando de crear un sistema que elimine automáticamente los mensajes en un canal específico si el mensaje no comienza con el prefijo de comando Y el usuario no tiene un rol específico.
Todo funciona, pero tan pronto como elimina un mensaje, arroja el error DiscordAPIError: Unknown Message
El siguiente es el fragmento de código de donde proviene este error:
client.on("messageCreate", (message) => { function deleteTalk(delay) { setInterval(() => { if (message.channel.id === "786356926216536102") { if ( !message.content.startsWith(prefix) && !message.member.roles.cache.has("791024545091420190") ) { if (!message) return; const user = message.author; message.delete(); user.send("Please don't talk in report channels."); return; } } }, delay); } deleteTalk(100); //Other Code... });He revisado preguntas en las que las personas han recibido el mismo error, pero las soluciones a esos casos no me han funcionado. Intenté agregar fragmentos de código que deberían evitar que la función se active nuevamente si no hay un mensaje para eliminar, pero asumo que lo que había escrito era incorrecto ya que todavía obtengo el error.
Pones un setInterval para que, en la primera ejecución, se elimine tu mensaje, pero luego vuelves a intentar eliminarlo 100 ms más tarde, pero el mensaje ya no existe. Para su situación, no veo para qué sirve setInterval
client.on('messageCreate', (message) => { if ( message.channel.id === '786356926216536102' && !message.content.startsWith(prefix) && !message.member.roles.cache.has('791024545091420190') ) { const user = message.author; message.delete(); user.send("Please don't talk in report channels."); return; } });