Service.CreateCommand("delete")
.Do(async (e) => {
var MessageToDelete = await e.Channel.DownloadMessages(150);
await e.Channel.DeleteMessages(MessageToDelete);
});
我试图让我的机器人在执行命令时删除 150 条消息。但是当我测试命令时,它不起作用,机器人什么也不做。我已经尝试在其上使用 try-catch 语句,它总是移动到 catch block 。有办法解决这个问题吗?
另外,如何让只有可以删除消息的用户才能使用此命令?
最佳答案
首先,看一下这张图:
您可以下载的邮件数量上限为 100。这意味着如果您尝试下载更多邮件,将会导致错误。如果要删除150条消息,可以通过循环或手动再次复制粘贴2行代码,使其执行两次任务。 [不要在没有定时器的情况下循环太多次,你的机器人可能会受到速率限制。]
Also, how do I make that only users who can delete messages can use this command?
使用 if..else
声明,if (e.User.ServerPermissions.ManageMessages == true)
...
你也可以为其他的事情做这个,比如禁止和其他东西,它只是简单的 e.User.ServerPermissions.<PERMISSIONS>
我建议通过 github here 阅读更多有关您的 discord.net 库的信息.
关于c# - 消息不会被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41788391/