[英]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.