【问题标题】:Messages does not get deleted?消息不会被删除?
【发布时间】:2017-06-06 21:40:02
【问题描述】:
Service.CreateCommand("delete")
       .Do(async (e) => {
           var MessageToDelete = await e.Channel.DownloadMessages(150);
           await e.Channel.DeleteMessages(MessageToDelete);
});

我正在尝试让我的机器人在执行命令时删除 150 条消息。但是当我测试命令时,它不起作用,机器人什么也不做。我已经尝试在它上面使用 try-catch 语句,它总是移动到 catch 块。有没有办法解决这个问题?

另外,我如何让只有可以删除消息的用户才能使用这个命令?

【问题讨论】:

  • 它抛出的异常是什么?
  • 它只是抛出了一个异常。我刚刚尝试将 catch 块放在 2 条不同的线上,它主要在 var MessageToDelete = await e.Channel.DownloadMessages(150);

标签: c# bots chatbot discord discord.net


【解决方案1】:

首先,看看这张照片:

您可以下载的消息限制为 100 条。这意味着如果您尝试下载更多消息,则会导致错误。如果要删除 150 条消息,可以通过循环或手动复制粘贴这 2 行代码,使其执行两次任务。 [不要在没有计时器的情况下循环太多次,你的机器人可能会受到速率限制。]

另外,我如何让只有可以删除消息的用户才能使用这个命令?

使用if..else 语句,if (e.User.ServerPermissions.ManageMessages == true)...

你也可以为其他事情做这个,比如禁止和东西等等,它只是简单的e.User.ServerPermissions.<PERMISSIONS>

我建议您通过 github here 阅读有关您的 discord.net 库的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2015-09-21
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    相关资源
    最近更新 更多