2017-08-21 11 views
-2

ユーザーの応答を待つ方法

await channel.SendMessageAsync("question?"); 

は、どのように私は、特定の応答を待つかのチャンネルで質問をした後? (例えば。はい、いいえ) 私は

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

を試みたが、動作するようには思えません。

答えて

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

意味がありません。 GetMessageAsync()は、channelIDではなくmessageIDを提供することを想定しています。

これで、まだ送信されていないメッセージからIDを知ることができないため、メッセージの無限大まで繰り返すことはできません。代わりにあなたのメッセージ/コマンドハンドラでこれを処理するよう助言します。

が最初のコマンドをトリガーした人を含むリストを追跡できます。その後、メッセージにはい/いいえが含まれているかどうか、あるいは多分何か他のものが含まれているかどうかを確認できます。

関連する問題