Discord 机器人删除消息

Posted

技术标签:

【中文标题】Discord 机器人删除消息【英文标题】:Discord bot delete messages 【发布时间】:2020-08-24 00:00:26 【问题描述】:

我想用机器人删除消息。我写了一些简单的代码,但出现了一些错误。

我的代码:

if (msg.content.toLowerCase() === prefix + "clear") 
    msg.delete(100)
    msg.channel.send("100 messages have been deleted!")

nodejs版本为v12.16.3

【问题讨论】:

你想实现什么,错误是什么? 我想通过命令bot删除一定数量的消息。错误:hastebin.com/yobuhojonu.rb 【参考方案1】:

你可以这样做:

if (msg.content.toLowerCase() === prefix + "clear") 
    const channel = msg.channel; // TextChannel object
    const messageManager = channel.messages; // MessageManager object

    messageManager.fetch( limit: 100 ).then((messages) => 
        // `messages` is a Collection of Message objects
        messages.forEach((message) => 
            message.delete();
        );

        channel.send("100 messages have been deleted!");
    );

在这种情况下,阅读文档非常有帮助。

文本频道:https://discord.js.org/#/docs/main/stable/class/TextChannel?scrollTo=messages 消息管理器:https://discord.js.org/#/docs/main/stable/class/MessageManager?scrollTo=fetch 留言:https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=delete

【讨论】:

感谢您的帮助,但是当我运行命令时,“已删除 100 条消息!”不断地向他的文章发送垃圾邮件。我希望它只写一次。我该怎么做? Oups 这需要移到forEach 循环之外。我编辑了我的答案。

以上是关于Discord 机器人删除消息的主要内容,如果未能解决你的问题,请参考以下文章

discord.js 机器人正在删除所有消息

在 discord.py 中删除机器人的消息

Discord.js 删除命令消息

使用 JDA 制作的 Discord 机器人正在删除不正确的消息

如何让您的 Discord 机器人说出具体内容,然后删除上一条消息

discord.py Bot 并不总是删除消息