如果玩家有角色(discord.js)

Posted

技术标签:

【中文标题】如果玩家有角色(discord.js)【英文标题】:If a player have a role (discord.js) 【发布时间】:2021-07-08 21:54:06 【问题描述】:

所以我制作了一个不和谐的机器人,我想制作一个只有在使用该命令的人具有名为“colorm”的角色时才有效的命令

这是代码

client.on('message', msg => 

  if (msg.content === '!setupcolors')
    if(msg.guild.roles.find(role => role.name === "colorm"))
        console.log("cmd: !setupcolors >> Command used.");
        msg.reply(String('Hi! this command is under constuction'));
    
    else
        msg.reply(String('Hi! you need to have a rank called "colorm" to acces this command.'));
        console.log("Error[cmd: !setupcolors] >> No perms.");
    
  
);

谢谢! :D

【问题讨论】:

您是要查看用户是否具有该角色,还是服务器 (guild) 是否具有该角色?您的代码正在检查guild 中的角色。 【参考方案1】:

尝试使用这个 - if(!msg.member.roles.cache.some(role => role.name === 'colorm'))

【讨论】:

【参考方案2】:

您可以检查成员是否具有特定角色,如下所示:

msg.member.roles.find(r => r.name === "colorm")

或者,您可以使用角色的ID 来检查:

// First you need to retrieve the role:
const role = guild.roles.cache.find(r => r.name === "colorm")

// You can now check if the user has the role with:
member.roles.cache.has(role.id)

// (Optional)
// If 'role' isn't undefined and the user has the appropriate role you can continue
if (role && member.roles.cache.has(role.id)) 
    // Do your stuff here, if the user has the role

【讨论】:

以上是关于如果玩家有角色(discord.js)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 V13 中为 discord.js 上的成员分配角色?

如何检查用户是不是有任何角色 discord.js

无法添加角色,Discord.js

如果用户具有特定角色,discord.js 机器人会回复

为用户添加角色 discord.js

createReactionCollector 在 discord.js 中不起作用