discord - Discord.js 中的临时 Bann 角色
问题描述
我基本上是在尝试为说特定单词的成员赋予一个角色,该角色会剥夺读写权限。我遇到的麻烦是给用户他的角色。
我尝试通过“message.member.roles.find()”找到用户拥有的角色,但遗憾的是没有用。我是这方面的初学者,所以也许我错过了一些简单的解决方案。
client.on('message', message => {
if (!message.author.bot) {
// exclude messages from bots
if ((message.content.startsWith(prefix) || message.content.startsWith(prefixPermanent)) && message.content.length > 1) {
// query commands
Commands.handleCommand(client, message);
}
else if (message.content.toLowerCase() === 'bad word' || message.content.toLowerCase() === 'other bad word') {
const memberroles = message.member.roles.find();
message.channel.send('Get banned');
message.member.setRoles(['608002911225643028'])
setTimeout(() => {
message.member.setRoles([`memberoles`])
}, 60000);
}
}
});
解决方案
我遇到的麻烦是给用户他的角色。
...
我尝试通过“message.member.roles.find()”找到用户拥有的角色,但遗憾的是没有奏效。
message.member.roles.find()
仅查找成员当前拥有的角色。
在您的情况下,您正在尝试将角色添加回成员。所以你不会从成员那里找到角色。
你可能想要的是message.guild.roles.find()
.
它找到公会拥有的角色。
编辑
你有const memberroles = message.member.roles.find();
哪个只从成员那里获得一个角色。
相反,做
const memberroles = message.member.roles;
它返回一个角色集合,您可以将其输入回message.member.setRoles()
,如下所示:
...
const memberroles = message.member.roles;
message.channel.send('Get banned');
message.member.setRoles(['608002911225643028'])
setTimeout(() => {
message.member.setRoles(memberoles)
}, 60000);
...
推荐阅读
- python - 如何在python中循环附加脚本
- email - 如何验证电子邮件是从正确的域发送的并且电子邮件的内容没有被修改?
- assembly - MIPS 汇编(MARS 4.5):浮点算术答案很奇怪
- mysql - 将 React 对象插入 sequelize/MySQL 数据库时遇到问题
- arrays - 尝试仅向数组添加唯一元素
- docker - ansible 将容器部署到远程本地映像
- typescript - 如何在 typescript 中为 redux reducer 设置初始状态?
- javascript - Typescript 对象数组检查重复项
- realsense - 如何在realsense D435中完全关闭深度传感器?
- ios - 以编程方式声明的 UICollectionView 不会改变 Swift 5 中单元格的大小