2017-08-21 2 views
-2

Après avoir posé une question dans un canalComment attendre une réponse de l'utilisateur?

await channel.SendMessageAsync("question?"); 

comment puis-je attendre une réponse certaine? (Par exemple. Oui, non) J'ai essayé

string input; 
bool done = false; 
while(!done) 
{ 
    input = channel.GetMessageAsync(channel.Id).ToString(); 
    if (String.Compare(input, "yes") == 0) 
    { 
      //code here 
      done = true; 
    } 
    else if (String.Compare(input, "no") == 0) 
    { 
      //code here 
      done = true; 
    } 
} 

mais il ne semble pas fonctionner.

Répondre

0
input = channel.GetMessageAsync(channel.Id).ToString(); 

Cela n'a aucun sens. GetMessageAsync() s'attend à ce que vous fournissiez un ID de message et non un ID de chaîne.

Maintenant, vous ne connaissez pas l'ID d'un message qui n'a pas encore été envoyé, donc au lieu de boucler jusqu'à l'infini pour un message peut ou ne peut jamais suivre. Je vous conseille de gérer cela dans votre gestionnaire de messages/commandes.

Ici vous pouvez garder une trace d'une liste, contenant des personnes qui ont déclenché votre commande initiale. Après quoi vous pouvez vérifier si leur message contenait un Oui/Non ou peut-être même quelque chose d'autre tous ensemble.