簡體   English   中英

Discord.js 中的用戶批量刪除消息

[英]Bulk delete messages by user in Discord.js

我想刪除特定用戶發布的所有消息。 到目前為止,我有:

async function clear() {
    let botMessages;
    botMessages = await message.channel.fetch(708292930925756447);
    message.channel.bulkDelete(botMessages).then(() => {
        message.channel.send("Cleared bot messages").then(msg => msg.delete({timeout: 3000}))
    });
}
clear();

將 botMessages 傳遞給 bulkDelete() 似乎存在問題,它需要一個數組或集合,但顯然 botMessages 不是數組或集合。

我將如何將 botMessages 提供給 bulkDelete,或者我是否完全錯了?

message.channel.fetch()獲取消息發送到的通道,而不是該通道中的消息。

您需要獲取一定數量的消息並對其進行過濾,以便您僅獲取機器人發送的消息,然后將它們傳遞給bulkDelete()

message.channel.messages.fetch({
    limit: 100 // Change `100` to however many messages you want to fetch
}).then((messages) => { 
    const botMessages = [];
    messages.filter(m => m.author.id === BOT_ID_HERE).forEach(msg => botMessages.push(msg))
    message.channel.bulkDelete(botMessages).then(() => {
        message.channel.send("Cleared bot messages").then(msg => msg.delete({
            timeout: 3000
        }))
    });
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM