如何等待用户响应?

How to await a users response?

在频道中提问后

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

但是好像不行。

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

没有意义。 GetMessageAsync() 希望您提供 messageID 而不是频道 ID。

现在您不知道尚未发送的消息的 ID,因此不是循环直到消息的无穷大可能会或可能永远不会跟进。我建议您改为在 message/Command 处理程序中处理此问题。

在这里您可以跟踪一个列表,其中包含触发您初始命令的人。之后,您可以检查他们的消息是否包含 Yes/No 或其他内容。