2
Service.CreateCommand("delete")
       .Do(async (e) => {
           var MessageToDelete = await e.Channel.DownloadMessages(150);
           await e.Channel.DeleteMessages(MessageToDelete);
});

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

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

4

1 回答 1

0

首先,看看这张图片:

在此处输入图像描述

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

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

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

您也可以为其他事情执行此操作,例如禁止和其他内容等,这很简单e.User.ServerPermissions.<PERMISSIONS>

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

于 2017-01-22T07:47:43.980 回答