Joh*_*ohn 1 javascript node.js 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();
Run Code Online (Sandbox Code Playgroud)
将 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
}))
});
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5105 次 |
| 最近记录: |