Javascript message.member.roles.includes不是一个函数
我希望discord bot只允许该人员在数组中有一个角色时运行该命令Javascript message.member.roles.includes不是一个函数,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我希望discord bot只允许该人员在数组中有一个角色时运行该命令 const validroles = ['owner', 'Co-Owner'] if(!message.member.roles.includes(validroles)) { return message.channel.send(`**${message.author}, You do not have permission to use this command**`) } 它告诉我错误Typ
const validroles = ['owner', 'Co-Owner']
if(!message.member.roles.includes(validroles)) {
return message.channel.send(`**${message.author}, You do not have permission to use this command**`)
}
它告诉我错误TypeError:message.member.roles.includes不是一个函数
如何修复此问题?
message.member.roles
为属于此成员的角色返回一个值,因此您需要使用.cache
属性返回角色.cache
返回没有.includes()
方法的。我想您正在查找检查集合中是否存在元素的.has()
属性:
if(!message.member.roles.cache.has(validrole.id)){
返回message.channel.send(`**${message.author},您没有使用此命令的权限**`)
}
在V12中应该是message.member.roles.cache.includes
它仍然会给我一个错误这是相同的错误吗?是的,它是相同的错误出于某种原因,它只是发送消息“您没有使用此命令的权限”我认为validroles
是一个角色ID,而不是运行该命令。请确保您正在传递角色ID。刚刚更新了我的答案。我在数组中有角色名称。我应该改用角色ID吗?nvm我找到了一个不同的解决方案