【问题标题】:Deleting command messages after sending them发送命令消息后删除它们
【发布时间】:2021-04-07 16:50:23
【问题描述】:

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

【问题讨论】:

  • await Context.Message.DeleteAsync()

标签: c# discord.net


【解决方案1】:

要回答如何删除消息的问题,请使用Context.Channel.DeleteMessageAsync 函数。它以消息ID作为参数,因此您需要将消息数据当时在内存中。

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

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

您可以通过查看Discord.Net docs找到更多关于 DeleteMessageAsync 函数的信息

【讨论】:

  • 另外,如果你有权访问消息对象,你可以使用Message.DeleteAsync()。因为Message继承自IDeletable
  • 这正是我找不到的。非常感谢。
猜你喜欢
  • 2020-12-03
  • 2020-05-17
  • 2021-05-13
  • 1970-01-01
  • 2018-08-26
  • 2020-11-08
  • 2019-02-27
  • 2019-10-17
  • 2021-09-26
相关资源
最近更新 更多