ご覧のとおり、リクエストには応答しますが、入力した番号に対しては何もしません。そこに座っているだけです。
そのコマンドのコードは次のとおりです (現在、DSharp チュートリアル Web サイトからコピーしたものです。大幅に変更する予定でしたが、標準を実行することさえできません)。
[Command("waitforcode"), Description("Waits for a response containing a generated code.")]
public async Task WaitForCode(CommandContext ctx)
{
// first retrieve the interactivity module from the client
var interactivity = ctx.Client.GetInteractivity();
// generate a code
var codebytes = new byte[8];
using (var rng = RandomNumberGenerator.Create())
rng.GetBytes(codebytes);
var code = BitConverter.ToString(codebytes).ToLower().Replace("-", "");
// announce the code
await ctx.RespondAsync($"The first one to type the following code gets a reward: `{code}`");
// wait for anyone who types it
var msg = await interactivity.WaitForMessageAsync(xm => xm.Content.Contains(code), TimeSpan.FromSeconds(60));
if (!msg.TimedOut)
{
// announce the winner
await ctx.RespondAsync($"And the winner is: {msg.Result.Author.Mention}");
}
else
{
await ctx.RespondAsync("Nobody? Really?");
}
}
誰かが私を助けることができれば、それは素晴らしいことです!