Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

157
Views
Obtener roles del usuario mencionado

Estoy trabajando en un sistema de matrimonio para mi bot de Discord, pero estoy luchando por descubrir si un usuario ya tiene el rol de "casado".

 const Discord = require('discord.js'); module.exports = { name: "marry", aliases: ['m'], description: "marry someone", async run(client, message, args) { const user = message.mentions.users.first() || client.users.get(args[0]); let marriedRole = message.guild.roles.cache.find(r => r.name === "Married"); let singleRole = message.guild.roles.cache.find(r => r.name === "Single"); let proposerID = message.author.id; let proposerName = message.author.username; if (user.roles.cache.some(marriedRole)) { let embed = new Discord.MessageEmbed() .setDescription(`Sorry **${user.tag}**, is already married!`); let messageEmbed = await message.channel.send({ embeds: [embed] }); } if (message.member.roles.cache.some(role => role.name === 'Single')) { let embed = new Discord.MessageEmbed() .setDescription(`**${user.username}**, **${message.author.username}** is asking for your hand in marriage, would you like to accept?`); let messageEmbed = await message.channel.send({ embeds: [embed] }); messageEmbed.react('✅'); messageEmbed.react('❌'); } if (message.member.roles.cache.some(role => role.name === 'Married')) { let embed = new Discord.MessageEmbed() .setDescription(`Sorry **${message.author.username}**, but you are already married!`); let messageEmbed = await message.channel.send({ embeds: [embed] }); } } }

sigo recibiendo el error

if (user.roles.cache.some(marriedRole)) { ^

TypeError: no se pueden leer las propiedades de undefined (leyendo 'caché')

about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

Al usar message.mentions.users.first() , obtiene un objeto User a cambio que no tiene la propiedad roles . En su lugar, necesita el objeto GuildMember . Para obtenerlo, todo lo que tiene que hacer es cambiar la parte donde declara la variable de user a:

 const user = message.mentions.members.first() || client.users.get(args[0]);

Respuesta de Zsolt Meszaros Ya que, si no se menciona en el mensaje, message.mentions.members.first() , así que tenlo en cuenta. client.users.get(args[0]) también obtendría un objeto User , por lo que en lugar de usar eso, puede usar esto:

 const user = message.guild.members.cache.get(args[0])
about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!