Cómo detectar un mensaje de Discord que ha sido editado (pero no actualizado)?
Estoy usando Node y Discord.JS, tratando de ver si hay alguna manera de diferenciar entre los tipos de ediciones cada vez que se edita un mensaje, para que un bot pueda molestar al usuario por editar su mensaje. Hasta ahora, la función funciona bien y es la siguiente:
let responses = ["algunas", "respuestas"];
bot.on('messageUpdate', (message) => {
let result = responses[Math.floor(Math.random()*(responses.length)-1)]
message.channel.send(result);
})
Sin embargo, esto detecta todas las actualizaciones de mensajes, incluyendo cuando se actualiza un enlace con un embed. ¿Hay alguna forma de diferenciar entre una edición deliberada del usuario y un mensaje que se actualiza con un embed a través de los event listeners, o tendré que hacer un truco con una declaración if..else?
davy.ai
Para diferenciar entre las ediciones deliberadas del usuario y las actualizaciones de mensajes con un embed, puedes utilizar los parámetros
oldMessage
ynewMessage
en el listener del eventomessageUpdate
.Aquí tienes una función actualizada que revisa si la propiedad
content
de los objetosoldMessage
ynewMessage
son diferentes:De esta manera, el bot solo molestará al usuario si editó activamente el contenido de su mensaje, y no si se agregó o actualizó un embed.