Удаление командных сообщений после их отправки

Я начал писать своего собственного бота для сервера дискорда, используя Discord.net. Я уже сделал первую команду (которая все еще работает некорректно, но это уже другая история), и теперь, когда я тестирую, у нее есть чат, полный команд, которые я отправил. Моя цель — мгновенно удалять эти сообщения по мере их отправки (скажем, я отправляю .command что-то, и это должно появиться в чате на короткое время). Я пытался найти его в документации и некоторых учебниках, но ничего не смог найти. У меня есть только базовые знания в области программирования, поэтому я был бы рад, если бы вы рассказали мне, как этого добиться, и объяснили, как это работает.


person Shawney    schedule 07.04.2021    source источник


Ответы (1)


Чтобы ответить на вопрос, как удалить сообщение, вы используете функцию Context.Channel.DeleteMessageAsync. Он принимает идентификатор сообщения в качестве параметра, поэтому вам нужно будет иметь данные сообщения в памяти в то время.

Чтобы ответить на вопрос о том, как удалить сообщение, которое вы только что отправили, вы можете использовать вышеуказанную функцию удаления вместе с данными Context.Message, которые дают вам данные сообщения, вызвавшего команду. Это будет выглядеть следующим образом:

[Command("TestDelete")]
public async TestDeleteCommand()
{
   await Context.Channel.DeleteMessageAsync(Context.Message.Id);
}

Дополнительную информацию о функции DeleteMessageAsync можно найти в документах Discord.Net< /а>

person KingOfArrows    schedule 07.04.2021
comment
Это именно то, что я не мог найти. Большое тебе спасибо. - person Shawney; 07.04.2021