web-dev-qa-db-fra.com

Envoi de messages privés à l'utilisateur

J'utilise les bibliothèques discord.js et node.js pour créer un bot Discord qui facilite le poker. Il est fonctionnel sauf que les mains sont montrées à tout le monde et je dois faire une boucle entre les joueurs et leur envoyer un DM avec leur main.

bot.on("message", message => {
  message.channel.sendMessage("string");
});

C'est le code qui envoie un message au canal lorsqu'un utilisateur envoie un message. J'ai besoin du bot pour répondre dans un canal privé; J'ai vu dmChannel, mais je ne comprends pas comment l'utiliser. J'ai le nom d'utilisateur du membre auquel je veux envoyer un message à . Un exemple serait apprécié.

Edit: Après avoir recherché un objet utilisateur, j'ai découvert que tous les utilisateurs pouvaient utiliser la propriété .users du client (bot). J'essaierai d'utiliser la méthode user.sendMessage("string") bientôt.

7
adapap

Pour qu'un bot puisse envoyer un message, vous avez besoin de <client>.send(), la client étant l'endroit où le bot enverra un message (canal, partout sur le serveur ou PM). Puisque vous voulez que le bot PM soit un certain utilisateur, vous pouvez utiliser message.author en tant que client. (vous pouvez remplacer author comme utilisateur mentionné dans un message ou quelque chose, etc.)

Par conséquent, la réponse est: message.author.send("Your message here.")

Je vous recommande de consulter la documentation Discord.js sur les propriétés d'un objet donné chaque fois que vous êtes bloqué (e). Vous pouvez éventuellement trouver une fonction particulière qui pourrait vous servir de solution.

14
Kaynn

Les réponses ci-dessus fonctionnent bien aussi, mais j'ai constaté que vous pouvez généralement utiliser simplement message.author.send("blah blah") au lieu de message.author.sendMessage("blah blah")

.send a tendance à mieux fonctionner pour moi en général que .sendMessage, qui rencontre parfois des problèmes. Espérons que cela aide un peu minuscule!

1
SuperNunb

Si vous souhaitez envoyer le message à une personne prédéterminée, telle que vous-même, vous pouvez le configurer de sorte que le canal sur lequel la messagerie serait transmise devienne leur (votre) propre ID utilisateur. Ainsi, par exemple, si vous utilisez les tutoriels discord bot de Digital Trends, où il est dit "à:", vous continuerez avec leur (ou votre) ID utilisateur. Par exemple, avec la façon dont ce code spécifique est configuré, vous pouvez faire "à: userID" et la personne en sera avertie. Ou, si vous voulez que le bot vous envoie un message chaque fois que quelqu'un utilise une commande spécifique, vous pouvez le faire "à: '12345678890" ", les chiffres servant à indiquer l'identifiant de l'utilisateur. J'espère que cela t'aides!

0
user10925279

C'est assez simple voici un exemple

Ajoutez votre code de commande ici comme: if (cmd === !dm) {

let dUser = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0]);
if (!dUser) return message.channel.send("Can't find user!")
if(!message.member.hasPermission("ADMINISTRATOR")) return message.reply("You can't you that command!")
let dMessage = args.join(" ").slice(22);
if(dMessage.length < 1) return message.reply('You must supply a message!')

dUser.send(`${dUser} A moderator from WP Coding Club sent you: ${dMessage}`)

message.author.send(`${message.author} You have sent your message to ${dUser}`)

}
})
0
MrPowerPanda

Faites en sorte que le code dise if (msg.content === ('trigger') msg.author.send('text')}

0
DisBotDev1

target.send ('string') devrait fonctionner

0
Tyler Berger