如何检查用户是否在特定服务器中具有特定角色,然后在嵌入中为他们提供徽章

时间:2020-04-17 02:06:28

标签: discord.js

因此,我的机器人中装有经济系统,我希望支持服务器中的工作人员,beta测试人员等能够在其profile(embed)命令上获得此特殊标志!

到目前为止,这是我的主意:

let badge = '';

if(message.member.roles.has(<role>.id)) badge = "badge here"

我正在使用discord.js v11.5.1

1 个答案:

答案 0 :(得分:0)

创建徽章的图像后,只需使用.setThumbnail()方法指向该图像或该图像的链接,以便您可以在徽章的嵌入位置显示徽章。

const member = client.guilds.get(GUILD_ID).members.get(message.author.id);
if (member.roles.has(role)) embed.setThumbnail('link_to_badge_img')

但是,如果您只希望在嵌入说明中列出徽章列表,则可以像这样列出徽章:

const member = client.guilds.get(GUILD_ID).members.get(message.author.id);
if (member.roles.has(role)) embed.setDescription('BadgeTitle')

或者,如果用户有多个徽章,则可以创建一个badges数组并将其必须使用的徽章推送到它之前,最后将其添加到嵌入描述中,如下所示:

const member = client.guilds.get(GUILD_ID).members.get(message.author.id);
if (member.roles.has(role)) badges.push('BadgeTitle') //Do this for each badge

if (badges.length) embed.setDescription(`**Badges**\n${badges.join('\n')}`)