Estoy tratando de hacer un bot de vanidad para Discord, pero no estoy seguro si estoy usando el evento correcto. Aquí está mi código:
client.on("presenceUpdate", newPresence => { let vanityRole = newPresence.guild.roles.cache.find(role => role.id === "940679835456536596"); const activity = newPresence.member.user.presence.activities[0].state if (activity === null) return; if (activity.includes("gg/pm")) { let memberTarget = newPresence.guild.members.cache.get(newPresence.member.id); memberTarget.roles.add(vanityRole); const vanity = new Discord.MessageEmbed() .setColor(color) .setDescription(`<@${memberTarget.id}>, thanks for putting us in your status <3`); message.channel.send(vanity) } else return; });
Aquí está el error que estoy recibiendo: En esta línea: const activity = newPresence.member.user.presence.activities[0].state
Error: [TypeError: Cannot read property 'state' of undefined]
repl process died unexpectedly: exit status 1
Gracias
Uno de sus elementos en newPresence.member.user.presence.activities
es igual a una array
vacía o undefined
, por lo tanto, newPresence.member.user.presence.activities[0] === undefined
.
Puede probar: const activity = newPresence.member.user.presence.activities[0]?.state
El operador de encadenamiento opcional (?.) le permite leer el valor de una propiedad ubicada en lo profundo de una cadena de objetos conectados sin tener que verificar que cada referencia en la cadena sea válida.