我想在不和谐的bot上运行命令,并为所有具有预定义角色的成员添加辅助角色。
它会像这样。所有具有X角色的成员都将被分配给Y角色。
我试图编写代码,但是失败了,因此我将我的代码编写为伪代码,这对任何帮助都很好。
const userID = "1234"; //this is my userid so only I will be able to use this command
let roleID1 = "xxxx";
let roleID2 = "yyyy";
client.on("message", function (message) {
if (message.author.id === userID) {
if (message.content === "!setrole") {
// Code for taking the list of all members with role xxxx.
// Code for assigning all those people to the role yyyy.
message.channel.send("Roles assigned");
}
}
});
答案 0 :(得分:2)
尝试一下:
// iterate a function through all members of the guild
message.guild.members.cache.forEach((member) => {
if (member.roles.cache.has(roleID1) // if member has x role
member.roles.add(roleID2); // give y role
});
您也可以使用Array.prototype.filter()
;尽管执行没有区别,但执行速度可能更快(但我真的不知道):
message.guild.members
.filter((member) => member.roles.cache.has(roleID1))
.forEach((member) => member.roles.add(roleID2))