You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js中查询用户角色方法及角色权限命令报错解决

如何检查Discord用户角色以限制命令访问?

嘿,我来帮你解决这个问题!你遇到的报错是因为Discord.js里message.member并没有.role()这个方法,正确的角色检查逻辑得通过.roles属性来操作,下面给你两种实用的实现方式:

方法一:通过角色ID检查(推荐)

角色ID是服务器内唯一的标识,不会因为角色名称修改或者重名而失效,是最稳定的方式:

// 替换成你服务器中CEO角色的实际ID
const ceoRoleId = "123456789012345678";

// 检查用户是否拥有该角色
if (!message.member.roles.cache.has(ceoRoleId)) {
    return message.reply("抱歉,你没有权限使用这个命令!");
}

// 在这里编写只有CEO能执行的命令逻辑

方法二:通过角色名称检查

如果只是快速测试或者确定不会有重名角色,也可以用角色名称来检查:

// 检查用户的角色列表中是否存在名为"CEO"的角色
if (!message.member.roles.cache.some(role => role.name === "CEO")) {
    return message.reply("抱歉,你没有权限使用这个命令!");
}

// 在这里编写只有CEO能执行的命令逻辑

额外注意事项

如果你使用的是Discord.js v14及以上版本,请确保你的机器人已经启用了Guilds和GuildMembers这两个Intents,否则可能无法正常获取用户的角色信息哦。

内容的提问来源于stack exchange,提问作者NotARealPerson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:51:20