Я начал писать своего собственного бота для сервера дискорда, используя Discord.net. Я уже сделал первую команду (которая все еще работает некорректно, но это уже другая история), и теперь, когда я тестирую, у нее есть чат, полный команд, которые я отправил. Моя цель — мгновенно удалять эти сообщения по мере их отправки (скажем, я отправляю .command что-то, и это должно появиться в чате на короткое время). Я пытался найти его в документации и некоторых учебниках, но ничего не смог найти. У меня есть только базовые знания в области программирования, поэтому я был бы рад, если бы вы рассказали мне, как этого добиться, и объяснили, как это работает.
Удаление командных сообщений после их отправки
Ответы (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
Кроме того, если у вас есть доступ к объекту сообщения, вы можете использовать
Message.DeleteAsync()
. Поскольку Message наследуется от IDeletable
- person Xenohon; 07.04.2021
Это именно то, что я не мог найти. Большое тебе спасибо.
- person Shawney; 07.04.2021