如何等待用户响应?
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 或其他内容。
在频道中提问后
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 或其他内容。