我正在尝试清除 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)中已经有调用这个文件的代码了)
答案 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