计数来自频道的消息

时间:2021-06-25 18:02:56

标签: javascript node.js discord discord.js bots

我想清理我所有的频道,而且我正在那里。 问题是,它非常非常长......

message.guild.channels.cache.forEach(c => {
                if (c.isText()) {
                    let CompteurMessage = 0;
                    let CompteurSuppression;
                    c.messages.fetch().then(messages => {
                        messages.forEach(msg => {
                            msg.delete();
                        });
                    });

                    c.send(`Your server is the best, ${message.author}.`);
                }
            });

您知道如何加快速度吗,例如计算频道中的消息数量?

编辑: 现在,我克隆了频道,但它们改变了位置......

c.clone().then((clone) => {
                        clone.send(`Love ${message.author}.`);
                        const originalPosition = c.position;

                        c.delete();
                        clone.setPosition(originalPosition);
                    });

第 3 和第 4 频道改变了位置。

谢谢

1 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点。

克隆

您可以使用 TextChannel.clone 克隆 TextChannel。 这将阻止您使用 BulkDelete 的 14 天限制。

const newChannel = await message.channel.clone();
message.channel.delete();

newChannel.send('The channel has been purged.');

批量删除

您可以非常轻松地删除过去 14 天内的所有邮件。

await message.channel.messages.fetch();
const messageCount = message.channel.messages.cache.map(x => x).length;
message.channel.bulkDelete(messageCount, true);

注意:不是最优雅的解决方案,因为它是深夜,但这应该可以帮助您。