私は Discord ボットをプログラミングしていて、大きな問題に遭遇しました。私はRPGボットをプログラミングしているので、プレイヤーのHPと敵のHPを頻繁に書き込む必要があるため、関数を作成しました。
private void showHP(CommandEventArgs e)
{
client.ExecuteAndWait(async() =>
{
await e.Channel.SendMessage(userInside + " - " + player.HP);
});
}
その CommandEventArgs e は、そのコマンドが実行されたチャネルにアクセスする必要があるため、 Command 関数から取得されます。
commands.CreateCommand("attack").Do(async (e) =>
{
await e.Channel.SendMessage("You have attacked");
showHP(e);
}
すべてがかなりうまくいくようです...実行されるまで。ボット全体がスタックし、際限なく待機しているため、非同期コマンドと待機コマンドを間違って使用したと思います。それらをまったく使用しないと、メッセージがタイムアウトになります。