清除用户"x"数量的消息或不和谐的数量.js



错误

当我使用!purge 10时,下面给出的清除命令会删除通道中的所有消息。我不确定这个错误以及如何修复。

代码

module.exports = {
name: 'purge',
args: true,
usage: '<@user> <number> `or` <number>',
async execute(client, message, args, Discord){
const user = message.mentions.users.first();
const number = !!parseInt(args[0]) ? parseInt(args[0]) : parseInt(args[1]);
if(isNaN(number)){
return message.reply('Enter a valid number. Eg: `!purge 10`')
};
if(number > 99 || number < 1){
return message.reply('Cannot clear messages more than `100` and less than `1`')
};

await message.channel.messages.fetch({
limit: 100,
}).then((messages) =>{
if(user){
const purge = user ? user.id : client.user.id;
messages = messages.filter(m => m.author.id === purge).array().slice(0, number)
}
message.channel.bulkDelete(messages, true).catch(console.error)
});
await message.channel.send(``${number}` message(s) cleared!`).then(m =>{
m.delete({timeout: 3000})
});
}
}

如果要删除特定数量的消息,则必须使用<textChannel>.bulkDelete()函数。

例如:

const messagesToDelete = args[0];
<textChannel>.bulkDelete(messagesToDelete)
.then(messages => console.log(`Bulk deleted ${messages.size} messages`))
.catch(console.error);

最新更新