c# - 消息不会被删除?

标签 c# bots chatbot discord discord.net

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

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

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

最佳答案

首先,看一下这张图:

enter image description here

您可以下载的邮件数量上限为 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/

相关文章:

ios - Pusher 聊天工具包教程未按预期工作

azure - 我们可以一起使用 LUIS 和文本分析 API

c# - 什么是学习泛型的最佳教程/地方

c# - 工作框架;在代码隐藏中在路径标记语法和几何图形之间转换

javascript - 如何让 Discord Bot 跳过删除包含 *DD 的消息

python - Discord Bot 返回 "HTTPException: BAD REQUEST (status code: 400): Cannot send an empty message"尽管我发送的是非空消息

python - 导入错误: No module named 'Kernel'

C# 使用 "?"if else 语句设置值 whats this called

c# - 数据库连接 : How to use c# 4. 0

javascript - Slack/Botkit : How to make bot in slack listen better?