if (!((String(oldMember.nickame)) == (String(newMember.nickname)))) { gwebhook.send({ embeds: [new Discord.MessageEmbed() .setAuthor(newMember.guild.name, newMember.guild.iconURL({dynamic: true})) .setTitle('Member Nickname Update') .setColor("YELLOW") .addField('Before', String(oldMember.nickname), true) .addField('After', String(newMember.nickname), true)] }); }
Da registros incluso cuando el rol cambió.
El problema aquí es un simple error tipográfico. Primero, simplifiquemos su código eliminando todas esas conversiones String()
redundantes y no tan bonitas:
if (!(oldMember.nickame == newMember.nickname)) { gwebhook.send({ embeds: [new Discord.MessageEmbed() .setAuthor(newMember.guild.name, newMember.guild.iconURL({dynamic: true})) .setTitle('Member Nickname Update') .setColor("YELLOW") .addField('Before', oldMember.nickname, true) .addField('After', newMember.nickname, true)] }); }
Eso hace que el código sea mucho más fácil de ver. Y ahora el problema es obvio. Hizo oldMember.nickame
en lugar de oldMember.nickname
en su declaración if
. Dado que oldMember.nickame
no está undefined
(ya que no es una propiedad existente de los miembros del gremio debido al error tipográfico), siempre no será igual a newMember.nickname
. Por lo tanto, siempre que un miembro se actualice de alguna manera (ya sea un cambio de apodo, un cambio de rol o cualquier otro cambio de miembro), el código dentro de esta declaración if
siempre se ejecutará. Simplemente corrija el error tipográfico y el código debería funcionar como se esperaba:
if (oldMember.nickname != newMember.nickname)