Discord.js中的临时Bann角色

Discord.js中的临时Bann角色,discord,discord.js,roles,Discord,Discord.js,Roles,我基本上是想给说一个特定单词的成员一个剥夺阅读和写作权限的角色。我遇到的问题是将角色还给用户 我尝试通过“message.member.roles.find()”来查找用户拥有的角色,但效果不佳。我是这方面的初学者,所以可能我错过了一些简单的解决方案 client.on('message',message=>{ 如果(!message.author.bot){ //从机器人程序中排除消息 if((message.content.startsWith(前缀)| | message.content.

我基本上是想给说一个特定单词的成员一个剥夺阅读和写作权限的角色。我遇到的问题是将角色还给用户

我尝试通过“message.member.roles.find()”来查找用户拥有的角色,但效果不佳。我是这方面的初学者,所以可能我错过了一些简单的解决方案

client.on('message',message=>{
如果(!message.author.bot){
//从机器人程序中排除消息
if((message.content.startsWith(前缀)| | message.content.startsWith(prefixPermanent))&&message.content.length>1){
//查询命令
Commands.handleCommand(客户端、消息);
}
else if(message.content.toLowerCase()=='bad word'| | message.content.toLowerCase()=='other bad word'){
const memberroles=message.member.roles.find();
message.channel.send('Get banked');
message.member.setRoles(['608002911225643028']
设置超时(()=>{
message.member.setRoles([`memberoles`])
}, 60000);
}
}
});
我遇到的问题是将角色还给用户。

我尝试通过“message.member.roles.find()”来查找用户拥有的角色,但效果不佳

message.member.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);
...

方法
Collection#find()
不适用于您的情况。该方法尝试在集合中查找提供的ID。 相反,只需将
memberroles
设置为
message.member.roles


要设置回角色,请执行
message.member.setRoles(memberroles)

但假设:成员有3个角色(RoleA、RoleB、RoleC)。他说了触发词,并设置为在时间用完后仅具有角色D。我希望机器人将“禁止”之前的角色还给他。我该怎么做/@LonelyChimo Woops,我真的不明白你的问题,我编辑了我的答案,这可能会有所帮助case@LonelyChimo看起来这个方法接受了一个ID数组,不像文档中说的那样。。。你能试试
constmemberroles=message.member.roles.keys()吗相反?哦,文档毕竟是正确的,很高兴你自己解决了:)