const miembrosConRoleRadiant = mensaje.guild.roles.cache.get('957714551011442781').miembros
miembrosConRoleRadiant.roles.set(['955804233284878367']);
TypeError: no se pueden leer las propiedades de undefined (leyendo 'set')
Recibí una lista de participantes con un rol específico, me gustaría establecer uno diferente para cada uno.
Nota: Esto está escrito para Discord.js v13.4.0.
.roles no es una propiedad Su problema es que está llamando a la propiedad roles en unacolección de GuildMember . Esto no funciona porque lasColecciones son un Mapa pero modificado. Tendría que realizar .each() y aplicar el rol de esa manera. Se vería algo como esto:
membersWithRoleRadiant.each(member => member.roles.set(['IDHere']);Un pequeño aviso también. Debe tener cuidado al actualizar roles para muchos usuarios a la vez. Esto puede considerarse spam de API, lo que hará que Discord limite la velocidad o apague su bot.
.set() Si solo está agregando o eliminando roles, desaconsejo enfáticamente el uso de .set() . Ese método eliminará todos sus roles y los reemplazará con los que ha proporcionado. Si está agregando roles, use el método .add() . Utilice el método .remove() cuando elimine roles.