【问题标题】:My embed shows 'Undefined' for user roles on my user info command我的嵌入在我的用户信息命令中显示用户角色的“未定义”
【发布时间】:2020-07-22 07:14:31
【问题描述】:

我正在制作一个不和谐的机器人,我决定添加一个用户信息命令。我这样做了,但问题是.setThumbnail 命令不起作用(所以我看不到图片)并且我想显示我的成员的角色,这是我使用member.roles 函数完成的。但是,它在嵌入“未定义”中说,这是我的代码供参考。我尝试只使用用户,但仍然在嵌入的用户角色下给我未定义。提前感谢任何回答它的人!

const embed = new Discord.MessageEmbed()
var user = message.mentions.users.first();
var member = message.mentions.users.first(user);
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('User Roles', member.roles)
    embed.setColor(0x00FF93)
    embed.setThumbnail(user.displayAvatarURL)
    embed.setFooter('Generated by Salty!')
 message.channel.send(embed);
 break;

【问题讨论】:

  • 另外,我如何添加到此命令以显示成员何时加入 Discord,如果他们正在玩游戏,则用户信息命令会显示这一点。简而言之,我需要修复:1)缩略图没有出现。 2) 显示为“未定义”的角色 我想在此命令中添加的内容:1) 成员何时加入 Discord。 2)如果他们正在玩游戏,我希望命令显示它。旁注:这必须适用于所有成员,而不仅仅是我。非常感谢照顾这些的人!

标签: javascript visual-studio-code discord.js


【解决方案1】:

在 discord.js v12.x 中,user.displayAvatarURL 是一个函数。 访问this link了解更多信息...

embed.setThumbnail(user.displayAvatarURL())

另外,member.roles 是经理,要获取成员的角色,请使用member.roles.cache。这个问题已经被问过了here

.addField('Roles:', member.roles.cache.map(r => `${r}`).join(' | '))

对于帐户创建,您可以使用user.createdAt 获取时间戳

.addField('Created at:', moment.utc(user.createdAt).format('dddd, MMMM Do YYYY, HH:mm:ss'))

希望有帮助!

【讨论】:

  • 非常感谢!但是,还有一个问题要问,如果他们在玩游戏,我怎么也能证明这一点?对不起,如果我要求太多。另外,您能否解决缩略图问题,由于某种原因,它没有出现,非常感谢 Rakox!
  • 还有 Rakox,我还有一个问题,上面写着 embed.addField('Roles:', member.roles.cache.map(r => ${r}).join(' | ')) ,类型错误:无法读取未定义的属性“缓存”。请帮忙。我是新手,谢谢!
  • 另外,我收到一个参考错误,时刻未定义。请帮忙。非常感谢你!!!!!!!
  • 我得到了缩略图,但是上面 3 个 cmets 需要帮助。谢谢!!!!
猜你喜欢
  • 2021-11-24
  • 2019-04-14
  • 2021-04-28
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 2020-05-07
  • 2021-08-20
相关资源
最近更新 更多