发送后删除命令消息

Deleting command messages after sending them

我开始使用 Discord.net 为不和谐服务器编写自己的机器人。我已经发出了第一个命令(它仍然不能正常工作,但那是另一个故事),现在我正在测试,它有一个充满我发送的命令的聊天。我的目标是在发送消息时立即删除它们(假设我发送了 .command something,这应该会在聊天中出现一小会儿)。我试图在文档和一些教程中查找它,但找不到任何东西。我只有编程的基础知识,所以如果你能告诉我如何实现这一点并解释它是如何工作的,我会很高兴。

要回答如何删除消息的问题,请使用 Context.Channel.DeleteMessageAsync 函数。它需要一个消息id作为参数,所以你当时需要在内存中有消息数据。

要回答如何删除您刚刚发送的消息的问题,您可以使用上面的删除功能以及 Context.Message 数据,它会为您提供触发命令的消息的消息数据。它将如下所示:

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

您可以通过查看 Discord.Net docs

找到有关 DeleteMessageAsync 函数的更多信息