2 votes

Conversation par robot sur Discord

Je suis en train de créer un bot discord qui va exécuter une fonction basée sur les questions posées, dont plusieurs sont des questions oui/non. En répondant "oui", il exécutera une certaine fonction, tandis que "non" mettra fin à la question. Je ne veux pas que le robot exécute une fonction aléatoire à chaque fois qu'il lit "oui". La seule solution à laquelle j'ai pensé est qu'une fois que la question a été posée (sur la base d'un mot déclencheur), l'utilisateur est bloqué dans une boucle où le robot ne répondra à aucun autre déclencheur que "oui" / "non". Si la réponse est "oui", la fonction correspondante s'exécute. Dans le cas contraire, l'utilisateur sort de la boucle et peut poser une autre question. En dehors de "oui/non", le robot dira "veuillez répondre par oui ou par non". Comment puis-je coder cela dans node.js/discord.js ?

0voto

Timesis Points 254

S'il s'agit d'une commande que les utilisateurs doivent exécuter pour initier cette conversation... je recommande de la référencer dans l'onglet documentation officielle de discord.js qui parle de awaitMessages . En gros, vous pourriez utiliser cette méthode suivie d'une série de .then() y if statements qui conduira l'utilisateur sur plusieurs chemins en fonction de ses réponses qui peuvent être filtrées.

S'il s'agit d'une fonction par défaut du robot qui ne nécessite pas de commande de déclenchement, je vous recommande d'être prudent dans ce domaine, car une telle fonction pourrait être considérée comme du spam.

Un exemple :

message.channel.send('Is this a great bot?').then(async (start) => {
            message.channel.awaitMessages(filter, { maxMatches: 1, time: 60000, errors: ['time']}).then(async (collected) => {
                if (collected.first().content === "yes") {} else if (collected.first().content === "no") {}
            })

Vous pouvez filtrer les messages avec l'option filter ou d'une autre manière pour que yes/no sont les seules réponses acceptables.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X