DiscordJS检查命令用户是否有角色



我以前已经成功地做到了这一点,但现在在制作新命令时它不起作用,尽管它可以与其他命令一起工作。

我正在尝试检查命令用户是否有角色,如果有,他们会以不同的方式执行命令

if (message.member.roles.cache.filter(role => role.name == "Castaways").size == 1) {
console.log("Works")
}

我设法找到了有助于改变错误的东西。我做了npm更新,现在message.member已经定义。我可以看到message.member.oles,但是,它现在声明message.member.oles.che是未定义的。

TypeError: Cannot read property 'filter' of undefined

对于我可能出错的地方,我们将不胜感激。

如果您有id(推荐(,请使用RoleManager#has()

if (message.member.roles.cache.has('role-id-here')) {
// Member has that role!
}

如果要按角色的名称查找角色,请选择RoleManager#some()

if (message.member.roles.cache.some(r => r.name === 'Castaways')) {
// Member has that role!
}

查看权限的官方文档

请确保您的DJS版本至少是v12,因为这是引入.cache的版本。

相关内容

最新更新