2017-08-21 1 views
-2

Nach einer Frage in einem KanalWie man auf eine Antwort des Benutzers wartet?

await channel.SendMessageAsync("question?"); 

wie ich warte auf eine bestimmte Antwort zu fragen? (Z. B. ja, nein) Ich habe

versucht
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; 
    } 
} 

, aber es scheint nicht zu funktionieren.

Antwort

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

Macht keinen Sinn. GetMessageAsync() erwartet, dass Sie eine Nachrichten-ID und keine Kanal-ID bereitstellen.

Jetzt wissen Sie nicht die ID von einer Nachricht, die noch nicht gesendet wurde, so dass statt Schleifen bis unendlich für eine Nachricht kann oder nie folgen. Ich würde dir raten, dies stattdessen in deinem Message/Command-Handler zu behandeln.

Hier können Sie den Überblick über eine Liste behalten, die Personen enthält, die ausgelöst Ihren ursprünglichen Befehl. Danach können Sie überprüfen, ob ihre Nachricht ein Ja/Nein oder vielleicht sogar etwas anderes zusammen enthält.

Verwandte Themen