如果玩家有角色(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)的主要内容,如果未能解决你的问题,请参考以下文章