0
votes

Comment puis-je faire mentionner ma discorde à quelqu'un que je parlais?

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 ! " )
    }
  }
  })


0 commentaires

3 Réponses :


1
votes

Un message a un Mentions < / Code> propriété qui est un Messagesions qui ont 2 propriétés qui pourraient vous intéresser: Utilisateurs et Membres . La différence sera avec ce que vous voulez faire avec cela. Membres est une collection de Guildmember tandis que utilisateurs est une collection de utilisateur .

Remarque: vous pouvez accéder à l'utilisateur à partir du Guildmember avec le varguildmember.user .

Ici vous voulez mentionner quelqu'un. Les deux types ont une méthode Tostring () qui renvoie une chaîne mentionnant l'utilisateur. Par exemple, si vous avez une instance de quelqu'un dans la variable oneUser , et que vous faites canal.send.send ('Hello' + OneSAser) , la sortie sera Bonjour @TheUser .

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 lul howcool et s'il contient la mention d'un utilisateur. S'il y a un autre message, cela fonctionnera toujours. xxx

Il enverra un message pour chaque mention (mention d'utilisateur, non canal ou rôle) dans le message.

Disclaimer : 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 foreach mais A pour boucle car foreach ne fonctionne pas avec la promesse Voir ceci .


0 commentaires

0
votes

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. XXX


0 commentaires

0
votes

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


0 commentaires