Я возился с ботами Discord и пытался создать свои собственные, однако столкнулся с проблемой. Одна из команд бота что-то говорит, ждет минуту, затем удаляет свое сообщение. Проблема не в этой команде, а в выполнении других команд. Когда вы выполняете эту команду и находитесь в течение этого одноминутного периода ожидания и пытаетесь выполнить другую команду, бот не выполняет эту вторую команду. Он выполнит его только после того, как истечет период ожидания в одну минуту.
Вот код команды:
[Command("test")]
public async Task PlayAsync()
{
string text = "Message To Delete"; //text that bot shows
var m = await ReplyAsync(text); //bot displays text
const int delay = 10000; //delay to wait
await Task.Delay(delay); //starting delay
await Context.Message.DeleteAsync(); //deleting messages after delay
await m.DeleteAsync();
}
Теперь, когда вы выполняете эту команду и пытаетесь выполнить другую, эта вторая команда не принимается / не выполняется ботом. Я не уверен, почему это так, потому что это две разные команды, если кто-то знает что-нибудь об этом, я возьму что угодно.
Хотя PlayAsync выполняется асинхронно, команда по-прежнему выполняется синхронно. Добавление
Runmode = RunMode.Async
должно помочь.