2 votes

(node:13848) Avertissement de rejet de promesse non gérée : TypeError: message.member.roles.some n'est pas une fonction

Je suis en train d'essayer de créer une commande kicka mais ça ne fonctionne pas à cause de cette erreur que je reçois : "(node:13848) UnhandledPromiseRejectionWarning: TypeError: message.member.roles.some n'est pas une fonction"

Mon code `client.on('message', async message => { if (!message.content.startsWith(prefix) || message.author.bot) return;

const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();

if(command === "kick") {
    if(!message.member.roles.some(r=>["Administrator", "Moderator"].includes(r.name)) )
      return message.reply("Désolé, vous n'avez pas la permission d'utiliser cette commande !");
    let member = message.mentions.members.first() || message.guild.members.get(args[0]);
    if(!member)
      return message.reply("Veuillez mentionner un membre valide de ce serveur");
    if(!member.kickable) 
      return message.reply("Je ne peux pas expulser cet utilisateur ! Ont-ils un rôle plus élevé ? Ai-je les permissions pour expulser ?");
    let reason = args.slice(1).join(' ');
    if(!reason) reason = "Aucune raison fournie";

    await member.kick(reason)
      .catch(error => message.reply(`Désolé ${message.author} je n'ai pas pu expulser à cause de : ${error}`));
    message.reply(`${member.user.tag} a été expulsé par ${message.author.tag} car : ${reason}`);

  }});`

0 votes

J'ai oublié de dire que j'obtiens l'erreur en essayant d'exécuter la commande de kick!

0 votes

Si message.member.roles.some n'est pas une fonction, cela signifie que message.member.roles n'est pas un tableau. Vérifiez ce que c'est, en faisant console.log, par exemple.

2voto

Genji Points 149

Si votre version discord.js est de 12.0.0 ou plus, c'est message.member.roles.cache.some(). Cela inclut également d'autres changements tels que message.guild.members.get(args[0]) est maintenant message.guild.members.cache.get(args[0]). C'est en raison des gestionnaires nouvellement ajoutés. Vous pouvez en savoir plus sur les changements de la v12 ici. Si vous n'êtes pas en v12, message.member.roles dans votre code a probablement été écrasé et n'est plus une Collection.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X