检查频道是否有任何消息 Discord.js

时间:2021-07-18 23:11:57

标签: javascript discord.js

我正在尝试清除 Discord 频道中的所有消息,直到它完全清空为止。

我的代码:

module.exports = {
    name: 'clearall',
    description: 'Clears ALL messages',
    async execute(message, args) {
        await message.channel.messages.fetch({
            limit: args[0]
        }).then(messages => {
            while ( <insert function here> == true) {
                message.channel.bulkDelete(100);
            }
        });
    }
}

(主文件(main.js)中已经有调用这个文件的代码了)

2 个答案:

答案 0 :(得分:0)

要实现这一点,您可以使用 TextChannel 中的 bulkDelete 方法,如下所示。

async execute(message, args) {
    await message.channel.messages.fetch({ limit: args[0] })
        .then(messages => message.channel.bulkDelete(messages, true))
}

首先获取频道消息,然后使用这些消息调用 bulkDelete。 请注意,如 method description 中所述,您只能批量删除超过两周的邮件,否则您将收到一个异常说明。因此,您可以使用第二个参数将它们过滤掉(默认为 false)。

答案 1 :(得分:-1)

您可以使用 <channel>.messages.fetch()

let collection = await message.channel.messages.fetch();
if(!collection.size) return message.channel.send('There are no more messages in this channel!')

从通道中获取消息,如果没有,则大小为0,并返回falsey