如何等待用户响应?

时间:2017-08-21 16:01:13

标签: c# discord.net

在频道中提问后

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

但它似乎无法发挥作用。

1 个答案:

答案 0 :(得分:0)

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

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

现在您还不知道尚未发送的消息中的ID,因此,消息的循环可能会或可能永远不会循环到无穷大。我建议你在消息/命令处理程序中处理它。

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