首页 > 解决方案 > 是否可以在 Discord.js 中查询用户角色

问题描述

我正在寻找一个只有特定角色才能访问的命令,并且想知道是否可以查询角色

我尝试做的是这样的

if (!message.member.role("CEO")) return;

我收到一条错误消息,指出 .role 不是函数

标签: javascriptdiscord.js

解决方案


message.member.role()不是 的有效属性GuildMember,但是,message.member.roles()它是Collection.

您应该从获取Role对象开始。

// Get the role by ID
let myRole = message.guild.roles.get("264410914592129025");

// Get role by name
let myRole = message.guild.roles.find(role => role.name === "Admin");

要检查他们是否有角色,请.has()使用Collection.

message.member.roles.has(myRole)
message.member.roles.has("543965345763464434") // You can use the role ID directly because the roles are mapped by their ID.

要检查他们是否具有多个角色之一:

if (message.member.roles.some(role => ["Role1", "Role2"].includes(role.name))) {
   // They have either Role1 or Role2.
}

推荐阅读