0
votes

J'obtiens une erreur d'autorisation manquante en raison du rôle "booster de serveur", comment puis-je lui faire prendre tous les rôles sauf ce rôle?

Mon code est comme ceci:

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]);

Le code fonctionne correctement, mais si la personne a le rôle de "Serveur Booster", cela donne une erreur d'autorisation manquante.

Comment puis-je lui faire prendre tous les rôles à l'exception du rôle de "booster de serveur"?


2 commentaires

vérifiez si votre bot est plus haut dans la liste des rôles que le rôle de booster de serveur et sinon assurez-vous qu'il est


Je suis autorisé à assumer et à attribuer le rôle "Serveur Booster"


3 Réponses :


0
votes

Personne ne peut attribuer / réaffecter des rôles de rappel ou des rôles de bot. Vous pouvez éviter toute erreur résultant de cela en ajoutant des rôles managed (rôles que vous ne pouvez pas attribuer / réaffecter) à la baie.

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
]);


1 commentaires

(node:11764) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body roles[1]: Value "{}" is not snowflake. cette erreur: (node:11764) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body roles[1]: Value "{}" is not snowflake.



0
votes

Le rôle "Serveur Booster" ne peut être donné que lorsqu'un utilisateur booste le serveur.

Bon codage.


0 commentaires

0
votes

J'ai trouvé la réponse à mon problème. Cela ne donne pas d'erreur quand je le fais de cette façon.

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);


0 commentaires