discord.js-从所有成员中删除特定角色

时间:2020-07-14 12:14:15

标签: javascript discord discord.js

我正试图从许多人中删除行会中的角色。但是,并不是行会中的每个人都扮演着这个角色,并且其中的人数很多。

message.guild.members.cache.forEach(member => {
  member.roles.remove("12345678901234");
});

此代码有效,但效率不高。上面的代码很慢。你有更好的代码吗?谢谢!

2 个答案:

答案 0 :(得分:4)

我将删除角色,然后重新创建。

const role = message.guild.roles.cache.get("RoleID");
message.guild.roles.create({
data: {
name: role.name,
color: role.color,
hoist: role.hoist,
position: role.position,
permissions: role.permissions,
mentionable: role.mentionable
}
})
role.delete('I had to.')

它的工作速度非常快,比手动抓住每个成员并删除角色要快得多,尤其是在大型服务器上。

答案 1 :(得分:2)

const Role = message.guild.roles.cache.get("RoleID");
Role.members.forEach((member, i) => { // Looping through the members of Role.
    setTimeout(() => {
        member.roles.remove(Role); // Removing the Role.
    }, i * 1000);
});

我认为由于Discord的API限制,您的代码很慢。您的代码没有延迟,这意味着您的代码将立即执行。

我提供的代码将每1秒1次从成员中删除一个角色。

如果要立即删除角色,则需要将其删除。它将从所有人中删除。