【问题标题】:How to check if person has a specfic role then return True or False in a embed如何检查人员是否具有特定角色,然后在嵌入中返回 True 或 False
【发布时间】:2019-09-22 04:11:19
【问题描述】:

我目前正在为我的 Discord 服务器制作一个 Discord Bot,我想做的是制作一个用户信息嵌入,我已经创建了嵌入,但我想要做的是如果用户拥有高级角色,然后在嵌入中,如果他们没有该角色,它会说“真”或“假”。

这是我的嵌入代码:

if (message.content.startsWith(prefix + "info")) {
message.delete(500)
const userinfo = new Discord.RichEmbed()
	.setColor('#71ff33')
	.setTitle('')
	.setURL('')
	.setAuthor('User Information', 'http://www.stickpng.com/assets/images/585e4bf3cb11b227491c339a.png')
	.setDescription("Hey " + message.author.username + " here's the information you requested.")
	.setThumbnail(message.author.avatarURL)
	.addBlankField()
	.addField('**User:**', message.member.user, true)
  .addField('**Rank:**', message.member.highestRole, true)
  .addField('**Joined:**', message.member.joinedAt, true)
  .addField('**Premium:**', , true) //This is where I'm stuck at.
  .setImage()
  .addBlankField()
  .setTimestamp()
	.setFooter('Discord User Information' , message.author.avatarURL);
  message.channel.send(userinfo);  
}

就在高级字段中,我希望它显示“真”或“假”,这取决于他们是否获得了这个角色,如果我对我在这里试图解释的内容有意义。

我正在使用 Node.Js 和 Discord.Js

【问题讨论】:

    标签: bots discord discord.js


    【解决方案1】:

    您应该能够使用以下选项之一

    这会返回真/假

    message.member.roles.some(r => r.name === 'Premium');
    

    如果找到,这些将返回角色。这意味着需要额外的逻辑来根据角色是否返回来确定真假。

    message.member.roles.get(id);
    message.member.roles.find(r => r.name === 'Premium');
    message.member.roles.find(r => r.id === id); //the .get(id) is faster
    

    【讨论】:

    • 在嵌入中,您可以使用嵌套模板文字并使用上述选项检查是否找到角色,即`${message.member.roles.get(id) ? 'True' : 'False'}`
    猜你喜欢
    • 2020-10-12
    • 2020-07-08
    • 2017-06-29
    • 1970-01-01
    • 2019-12-17
    • 2020-09-14
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多