Problème de roles discord.js

tom -  
jordane45 Messages postés 38486 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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > tom
 
Je pense que la réponse se trouve dans le lien que je t'ai donné
0
tom
 
Je n'ai pas trouvé...
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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