Bot discord (node + discord.js) Renvoi d'erreur MP refuser par l'utilisateur
chakalis49
Messages postés
175
Date d'inscription
Statut
Membre
Dernière intervention
-
SachOscarGaming -
SachOscarGaming -
Bonjour/Bonsoir, voilà je met en place un bot discord pour l'attribution ou suppression de rôles par réaction. Je rencontre un problème sur la partie qui confirme l'attribution ou la suppression du rôle en MP. En effet quand l'utilisateur refuse les MP cela me renvoi une erreur dans la console et fait planté mon bot. Justement je ne sais pas trop comment renvoyé cette erreur afin que le bot ne plante pas si quelqu'un pouvait me donner le chemin à suivre. Car je débute et expérimente parfois afin de comprendre comment un ensemble fonctionne mais j'apprend mieux de cette manière désolé d'avance.
Voici le code:
Et voici l'erreur que me renvoi la console:
Voici le code:
//addrole & delrole client.on('raw', event => { const eventName = event.t; if (eventName === 'MESSAGE_REACTION_ADD') { if (event.d.message_id === '590033047932502017') { var reactionChannel = client.channels.get(event.d.channel_id); if(reactionChannel.messages.has(event.d.message_id)) return; else { reactionChannel.fetchMessage(event.d.message_id) .then(msg => { var msgReaction = msg.reactions.get(event.d.emoji.name + ":" + event.d.emoji.id); var user = client.users.get(event.d.user_id); client.emit('messageReactionAdd', msgReaction, user); }) .catch(err => console.log(err)); } } } else if(eventName === 'MESSAGE_REACTION_REMOVE') { if (event.d.message_id === '590033047932502017') { var reactionChannel = client.channels.get(event.d.channel_id); if (reactionChannel.messages.has(event.d.message_id)) return; else { reactionChannel.fetchMessage(event.d.message_id) .then(msg => { var msgReaction = msg.reactions.get(event.d.emoji.name + ":" + event.d.emoji.id); var user = client.users.get(event.d.user_id); client.emit('messageReactionRemove', msgReaction, user); }) .catch(err => console.log(err)); } } } }); client.on('messageReactionAdd', (messageReaction, user) => { var roleName = messageReaction.emoji.name; var role = messageReaction.message.guild.roles.find(role => role.name.toLowerCase() === roleName.toLowerCase()); if(role) { var member = messageReaction.message.guild.members.find(member => member.id === user.id); if(member) { member.addRole(role.id); client.channels.get("509864489248620547").send(`Rôle ${role} attribué à ${user}`); member.createDM().then(channel => { channel.send(`Le rôle **${role.name}** vous a bien été attribué`); }).catch(err) console.log(`succès. Rôle ajouté.`) } } }); client.on('messageReactionRemove', (messageReaction, user) => { var roleName = messageReaction.emoji.name; var role = messageReaction.message.guild.roles.find(role => role.name.toLowerCase() === roleName.toLowerCase()); if(role) { var member = messageReaction.message.guild.members.find(member => member.id === user.id); if(member) { member.removeRole(role.id); client.channels.get("509864489248620547").send(`Rôle ${role} retiré à ${user}`); member.createDM().then(channel => { channel.send(`Le rôle **${role.name}** vous a bien été retiré`); }).catch(err) console.log("succès. Rôle retiré.") } } });
Et voici l'erreur que me renvoi la console:
(node:7128) UnhandledPromiseRejectionWarning: DiscordAPIError: Cannot send messages to this user at item.request.gen.end (d:\Bibliothèques\Desktop\Fences\4-Codage\Site Web\Bot Discord\BotExp\node_modules\discord.js\src\client\rest\RequestHandlers\Sequential.js:85:15) at then (d:\Bibliothèques\Desktop\Fences\4-Codage\Site Web\Bot Discord\BotExp\node_modules\discord.js\node_modules\snekfetch\src\index.js:215:21) at process._tickCallback (internal/process/next_tick.js:68:7) warning.js:18 (node:7128) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2) warning.js:18 (node:7128) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
A voir également:
- Fermer le mp discord
- Suprimer MP discord - Forum Discord
- Mp moi ✓ - Forum Mail
- Comment supprimer les messages d'une conversation Discord ? ✓ - Forum Discord
- Xnview mp - Télécharger - Visionnage & Diaporama
- Qu'est-ce qui se passe si on supprime un ami sur discord ✓ - Forum Discord
1 réponse
Bon voilà j'ai réussi à faire en sorte que le bot ne plante plus j'avais pas définis la fonction du .catch ligne 56 et 76.
Du coup voici mon nouveau code:
Du coup j'aimerais savoir comment récupérer le pseudo du l'utilisateur dans la console car avec un ${user} il me met une suite de chiffre et avec un ${user.name} il me met undefined.
Et existe t-il une solution pour éviter l'affichage de l'erreur dans la console qui suis après "succès. Rôle ajouté."
Du coup voici mon nouveau code:
//addrole & delrole client.on('raw', event => { const eventName = event.t; if (eventName === 'MESSAGE_REACTION_ADD') { if (event.d.message_id === '590033047932502017') { var reactionChannel = client.channels.get(event.d.channel_id); if(reactionChannel.messages.has(event.d.message_id)) return; else { reactionChannel.fetchMessage(event.d.message_id) .then(msg => { var msgReaction = msg.reactions.get(event.d.emoji.name + ":" + event.d.emoji.id); var user = client.users.get(event.d.user_id); client.emit('messageReactionAdd', msgReaction, user); }) .catch(err => console.log(err)); } } } else if(eventName === 'MESSAGE_REACTION_REMOVE') { if (event.d.message_id === '590033047932502017') { var reactionChannel = client.channels.get(event.d.channel_id); if (reactionChannel.messages.has(event.d.message_id)) return; else { reactionChannel.fetchMessage(event.d.message_id) .then(msg => { var msgReaction = msg.reactions.get(event.d.emoji.name + ":" + event.d.emoji.id); var user = client.users.get(event.d.user_id); client.emit('messageReactionRemove', msgReaction, user); }) .catch(err => console.log(err)); } } } }); client.on('messageReactionAdd', (messageReaction, user) => { var roleName = messageReaction.emoji.name; var role = messageReaction.message.guild.roles.find(role => role.name.toLowerCase() === roleName.toLowerCase()); if(role) { var member = messageReaction.message.guild.members.find(member => member.id === user.id); if(member) { member.addRole(role.id); client.channels.get("509864489248620547").send(`Rôle ${role} attribué à ${user}`); member.createDM().then(channel => { channel.send(`Le rôle **${role.name}** vous a bien été attribué`); }).catch(console.log(`AddRole ${user} refuse les MP`)) console.log(`succès. Rôle ajouté.`) } } }); client.on('messageReactionRemove', (messageReaction, user) => { var roleName = messageReaction.emoji.name; var role = messageReaction.message.guild.roles.find(role => role.name.toLowerCase() === roleName.toLowerCase()); if(role) { var member = messageReaction.message.guild.members.find(member => member.id === user.id); if(member) { member.removeRole(role.id); client.channels.get("509864489248620547").send(`Rôle ${role} retiré à ${user}`); member.createDM().then(channel => { channel.send(`Le rôle **${role.name}** vous a bien été retiré`); }).catch(console.log(`DelRole ${user} refuse les MP`)) console.log("succès. Rôle retiré.") } } });
Du coup j'aimerais savoir comment récupérer le pseudo du l'utilisateur dans la console car avec un ${user} il me met une suite de chiffre et avec un ${user.name} il me met undefined.
AddRole <@270748295725318144> refuse les MP
botexp.js:105
succès. Rôle ajouté.
botexp.js:106
Et existe t-il une solution pour éviter l'affichage de l'erreur dans la console qui suis après "succès. Rôle ajouté."
(node:19504) UnhandledPromiseRejectionWarning: DiscordAPIError: Cannot send messages to this user
at item.request.gen.end (d:\Bibliothèques\Desktop\Fences\4-Codage\Site Web\Bot Discord\BotExp\node_modules\discord.js\src\client\rest\RequestHandlers\Sequential.js:85:15)
at then (d:\Bibliothèques\Desktop\Fences\4-Codage\Site Web\Bot Discord\BotExp\node_modules\discord.js\node_modules\snekfetch\src\index.js:215:21)
at process._tickCallback (internal/process/next_tick.js:68:7)
warning.js:18
(node:19504) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
warning.js:18
(node:19504) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
warning.js:18
as-tu essayé avec un ${user.tag} ?
Bonne soirée