[英]I'm getting a missing permission error because of the "server booster" role, How can I get him to take all roles except this role?
My code is like this:我的代码是这样的:
let rMember = message.guild.member(message.mentions.users.first() || message.guild.members.cache.get([0]));
let crewmate = message.guild.roles.cache.get("752639666393710614");
rMember.roles.set([crewmate]);
The code works correctly, but if the person has the role of "Server Booster", it gives a Missing Permission error.代码工作正常,但如果此人具有“服务器加速器”的角色,则会出现“缺少权限”错误。
How can I get him to take all roles except the "server booster" role?我怎样才能让他担任除“服务器助推器”角色之外的所有角色?
Nobody can assign/reassign booster roles or bot roles.没有人可以分配/重新分配助推器角色或机器人角色。 You can prevent any errors coming from this by adding any
managed
roles (roles you can't assign/reassign) to the array.您可以通过向阵列添加任何
managed
角色(您无法分配/重新分配的角色)来防止由此产生的任何错误。
let rMember = message.guild.member(
message.mentions.users.first() || message.guild.members.cache.get([0])
);
let crewmate = message.guild.roles.cache.get('752639666393710614');
rMember.roles.set([
crewmate, // add the crewmate role
...rMember.roles.cache.filter((role) => role.managed).array(), // and any existing `managed` roles
]);
The role "Server Booster" can only be given when a user boost the server. “Server Booster”角色只能在用户提升服务器时授予。
Good coding.良好的编码。
I found the answer to my problem.我找到了我的问题的答案。 It doesn't give an error when I do it this way.
当我这样做时,它不会出错。
let rMember = message.guild.member(message.mentions.users.first() || message.guild.members.cache.get([0]));
const crewmate = ["752639666393710614"];
if(rMember.roles.cache.has("server booster role id")) {
roles[1] = "server booster role id";
}
rMember.roles.set(crewmate);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.