Je viens de commencer à coder un bot de discorde et j'ai un petit problème de mentionner quelqu'un. Je veux que mon bot mentionne quelqu'un et dire à quel point il est cool quand je mentionne quelqu'un sur la discorde dans n'importe quel canal, par exemple:
bot.on('message', message => { if (message.startsWith === 'lul howcool') { if ( message.content === @member ) { message.channel.send ( @member + ' is ' + ( Math.floor(Math.random() * 100) + 1 ) + "% cool ! " ) } } })
3 Réponses :
Un message a un Remarque: vous pouvez accéder à l'utilisateur code> code> à partir du Ici vous voulez mentionner quelqu'un. Les deux types ont une méthode Comment utiliser cela dépendra de la manière dont votre commande fonctionne (vérification s'il n'y a qu'une seule mention, combien d'arguments, etc.).
Je ferai la forme la plus simple, c'est-à-dire que si le message commence par Il enverra un message pour chaque mention (mention d'utilisateur, non canal ou rôle) dans le message. P > Disclaimer em>: Je ne peux pas tester le code afin qu'il y ait peut-être une erreur. La logique derrière elle est toujours viable. Si vous souhaitez gérer une éventuelle erreur après l'envoi d'un message, vous ne devriez pas utiliser Mentions < / Code>
propriété qui est un Messagesions code> qui ont 2 propriétés qui pourraient vous intéresser:
Utilisateurs code>
et Membres code>
. La différence sera avec ce que vous voulez faire avec cela. Membres Code> est une collection de
Guildmember code>
tandis que utilisateurs code> est une collection de
utilisateur code>
. Guildmember code> avec le
varguildmember.user code>. p>
Tostring () code> qui renvoie une chaîne mentionnant l'utilisateur. Par exemple, si vous avez une instance de quelqu'un dans la variable
oneUser code>, et que vous faites
canal.send.send ('Hello' + OneSAser) code>, la sortie sera
Bonjour @TheUser code>. P>
lul howcool code> et s'il contient la mention d'un utilisateur. S'il y a un autre message, cela fonctionnera toujours. P>
foreach code> mais A pour boucle car
foreach code> ne fonctionne pas avec la promesse Voir ceci . P> P>
Alors j'ai corrigé le code et l'a testé et cela fonctionne. J'ai choisi une approche différente, mais le résultat est le même.
Voici un simple extrait de code qui évalue un coup de pied de mention:
La documentation est activée: https://discordjs.guide/Creating-Your-Bot/commands-with-User-Input.html#mentimes P>
else if (command === 'kick') { // grab the "first" mentioned user from the message // this will return a `User` object, just like `message.author` const taggedUser = message.mentions.users.first(); message.channel.send(`You wanted to kick: ${taggedUser.username}`); }