Discord.js 中的临时 Bann 角色
Temporary Bann Role in Discord.js
我基本上是在尝试为说特定词的成员提供一个角色,该角色会取消读写权限。我遇到的麻烦是让用户恢复他的角色。
我尝试通过 "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);
}
}
});
The thing i have trouble with is giving the user his roles back.
...
I tried finding the roles the user has by "message.member.roles.find()" that didn't work sadly.
message.member.roles.find()
仅查找成员当前拥有的角色。
在您的情况下,您正在尝试将角色添加回成员。所以你不会从成员那里找到角色。
你可能想要的是message.guild.roles.find()
。
它找到公会拥有的角色。
编辑
你有const memberroles = message.member.roles.find();
仅从成员那里获得一个角色。
相反,
const memberroles = message.member.roles;
它 returns 一组角色,您可以将其输入回 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)
。
我基本上是在尝试为说特定词的成员提供一个角色,该角色会取消读写权限。我遇到的麻烦是让用户恢复他的角色。
我尝试通过 "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);
}
}
});
The thing i have trouble with is giving the user his roles back.
...
I tried finding the roles the user has by "message.member.roles.find()" that didn't work sadly.
message.member.roles.find()
仅查找成员当前拥有的角色。
在您的情况下,您正在尝试将角色添加回成员。所以你不会从成员那里找到角色。
你可能想要的是message.guild.roles.find()
。
它找到公会拥有的角色。
编辑
你有const memberroles = message.member.roles.find();
仅从成员那里获得一个角色。
相反,
const memberroles = message.member.roles;
它 returns 一组角色,您可以将其输入回 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)
。