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}`);
}