我做了一个用户信息命令,我想展示的一件事是成员的角色。但是出于某种奇怪的原因,我得到了TypeError: Cannot read property 'cache' of undefined
。
请帮助我,下面列出了我的代码以供参考。谢谢!
case 'whois': {
const embed = new Discord.MessageEmbed()
var user = message.mentions.users.first()
if(!args[1]) return message.reply('Apologies! Please specify a particular member!');
embed.setTitle('User Information')
embed.addField('Username', user.username)
embed.addField('User ID', user.id)
embed.addField('User Tag', user.tag)
embed.addField('Roles:', user.roles.cache.map(r =>`${r}`).join(' | '))
embed.addField('Created at:', user.createdAt)
embed.setColor(0x00FF93)
embed.setThumbnail(user.avatarURL())
embed.setFooter('Generated by Salty!')
message.channel.send(embed);
break;
}
答案 0 :(得分:0)
这是因为user.roles
未定义。
通过将“角色”行更改为以下内容,可以使用安全的后备广告:
embed.addField('Roles:', user.roles ? user.roles.cache.map(r =>`${r}`).join(' | ') : '')
答案 1 :(得分:0)
这是因为用户没有角色。只有公会会员可以。如果要获取第一个提到的成员,请使用message.mentions.members.first()。用户代表世界各地的不和谐用户,而GuildMembers是特定行会的成员。