Problème de roles discord.js

tom -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je suis en train de coder un bot discord en node.js pour mon serveur, comme je ne suis pas doué, j'ai perdu mon grade admin, j'ai donc essayé de me donner le grade avec mon bot :
let role = message.guild.roles.find(role => role.name === "Admin");
 const member = message.mentions.members.first();
 member.roles.add(role);

Mais apparemment node ne connais pas la fonction find():

C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\index.js:56
let role = message.guild.roles.find(role => role.name === "Admin");
^

TypeError: message.guild.roles.find is not a function
at Client.<anonymous> (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\index.js:56:34)
at Client.emit (events.js:210:5)
at MessageCreateAction.handle (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
at WebSocketShard.onPacket (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
at WebSocketShard.onMessage (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
at WebSocket.onMessage (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\ws\lib\event-target.js:120:16)
at WebSocket.emit (events.js:210:5)
at Receiver.receiverOnMessage (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\ws\lib\websocket.js:800:20)

Alors que celle ci est pourtant bien censcé être dans le package discord.js !
Pouvez vous m'aider à trouver la source de ce problème et peut-être une solution ?
Merci d'avance

Configuration: Windows/ Chrome 81.0.4044.122

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,
    Je ne fais pas de node ni de discord... mais une rapide recherche sur le net ( environ 30 secondes...) m'a permis de tomber sur plusieurs discussions traitants du même souci que toi.
    La réponse donnée étant toujours la même

    In the latest version of discord.js you must do member.guild.roles.cache to get the collection.
    Donc
    message.guild.roles.cache.find(
    

    La documentation officielle étant disponible ici au cas où :
    https://discord.js.org/#/docs/main/stable/class/GuildMemberRoleManager

    .
    0
    1. tom
       
      Merci, mais j'ai un autre problème:
      C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\index.js:58
      member.roles.add('688373423214428270')
      ^

      TypeError: Cannot read property 'roles' of undefined
      at Client.<anonymous> (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\index.js:58:16)
      at Client.emit (events.js:210:5)
      at MessageCreateAction.handle (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
      at Object.module.exports [as MESSAGE_CREATE] (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
      at WebSocketManager.handlePacket (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
      at WebSocketShard.onPacket (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
      at WebSocketShard.onMessage (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
      at WebSocket.onMessage (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\ws\lib\event-target.js:120:16)
      at WebSocket.emit (events.js:210:5)
      at Receiver.receiverOnMessage (C:\Users\Administrateur\Desktop\Projet\Steve-Harrington\node_modules\ws\lib\websocket.js:800:20)
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > tom
         
        Je pense que la réponse se trouve dans le lien que je t'ai donné
        0
  2. tom
     
    Je n'ai pas trouvé...
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Tu n'as pas du chercher beaucoup...
      Je ne fais pas de discord.. mais visiblement
      let role = message.guild.roles.find(r => r.name === "Team Mystic");
      
      // Let's pretend you mentioned the user you want to add a role to (!addrole @user Role Name):
      let member = message.mentions.members.first();
      
      // Add the role!
      member.addRole(role).catch(console.error);
      
      0