discord - 如何检查多个角色 discord.js v12
问题描述
我对 discord js 很陌生/很糟糕。但我想用“允许的角色”创建一个命令,所以只有管理员、所有者和 mod 可以使用它。但我不知道怎么做。
我试过这个:
client.on('message', message => {
if(message.content === 'test') {
let allowedRole = message.guild.roles.cache.find(r => r.name === "owner");
let allowedRole1 = message.guild.roles.cache.find(r => r.name === "mod");
let allowedRole2 = message.guild.roles.cache.find(r => r.name === "admin");
if (message.member.roles.cache.has(allowedRole.id) && message.member.roles.cache.has(allowedRole1.id) && message.member.roles.cache.has(allowedRole2.id)) {
message.channel.send('hello');
} else {
message.channel.send('bad');
}
}});
解决方案
在您的示例中,仅接受具有所有三个角色的用户(由于逻辑 AND运算符)。
client.on('message', async message => {
if (message.content === 'test') {
let allowedRole = await message.guild.roles.cache.find(
r => r.name === 'owner'
);
let allowedRole1 = await message.guild.roles.cache.find(
r => r.name === 'mod'
);
let allowedRole2 = await message.guild.roles.cache.find(
r => r.name === 'admin'
);
if (
message.member.roles.cache.has(allowedRole.id) ||
message.member.roles.cache.has(allowedRole1.id) ||
message.member.roles.cache.has(allowedRole2.id)
) {
message.channel.send('hello');
} else {
message.channel.send('bad');
}
}
});
推荐阅读
- javascript - React Redux 不断返回多个 reducer 对象
- css - 多个背景 css 图像(一个固定,另一个滚动)全部显示为滚动
- svg - 调整大小+移动时 SVG 元素被切断
- graphql - GraphQL 嵌套类型:“......的类型必须是输出类型,但得到:未定义。”
- python - Python 套接字服务器和管道
- c# - 有人如何使用用户空间应用程序破坏 NTFS 文件系统
- c - 奥比奥中的 Hop_Size 含义
- node.js - SocketIO 检测断开连接
- php - 在轮播引导程序中禁用图片
- c - 通过 c 中的指针算术获取和设置 char 数组的值