如何从消息提及中找到 discord.js 用户的权限?

时间:2021-03-19 17:07:04

标签: javascript node.js discord.js typeerror

我正在执行禁止命令,我需要检查目标用户是否具有管理员权限。我试过了:

const user = message.mentions.users.first();
const userMember = message.guild.members.fetch(user)

但我收到一个错误:TypeError: userMember.hasPermission is not a function

有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:1)

.fetch() 返回一个 promise,因此您需要await 结果:

const userMember = await message.guild.members.fetch(user)
userMember.hasPermission()

您也可以从 mentions 获取成员而不是用户:

const member = message.mentions.members.first()
member.hasPermission()

答案 1 :(得分:0)

尝试使用 userMember.permissions.has。根据 Discord.JS 文档 (https://discord.js.org/#/docs/main/stable/class/GuildMember?scrollTo=permissions),您需要这样做。 v12好像改了。


编辑:请看一下 Zsolt 的回答,您还必须await .fetch,否则将无法工作。

const user = message.mentions.users.first();
const userMember = await message.guild.members.fetch(user)