Javascript discord.js消息批量删除仅删除限制,而不删除指定内容
因此,我试图让bot删除指定的金额,而不是限制,限制是我想要删除的最大金额,当它指定仅删除限制金额时。我试过几次,但都没用Javascript discord.js消息批量删除仅删除限制,而不删除指定内容,javascript,bots,discord.js,Javascript,Bots,Discord.js,因此,我试图让bot删除指定的金额,而不是限制,限制是我想要删除的最大金额,当它指定仅删除限制金额时。我试过几次,但都没用 async run(message, args) { var obliviateRoles = [ 'Dev', 'Bot Dev', 'Moderator' ] var hasRole = false; obliviateRoles.forEach(findrole =>{
async run(message, args) {
var obliviateRoles = [
'Dev',
'Bot Dev',
'Moderator'
]
var hasRole = false;
obliviateRoles.forEach(findrole =>{
if(message.member.roles.cache.some(role => role.name === findrole)) hasRole = true; //if user has role, sets bool to true
})
var mention = message.mentions.users.first()
if(hasRole === true){
const user = message.mentions.users.first();
// Parse Amount
const amount = !!parseInt(message.content.split(' ')[1]) ? parseInt(message.content.split(' ')[1]) : parseInt(message.content.split(' ')[2])
if (!amount) return message.reply('Must specify an amount to delete!');
if (!amount && !user) return message.reply('Must specify a user and amount!');
// Fetch 100 messages (will be filtered and lowered up to max amount requested)
message.channel.messages.fetch({
limit: 5,
}).then((messages) => {
if (user) {
const filterBy = user ? user.id : Client.user.id;
messages = messages.filter(m => m.author.id === filterBy).array().slice(0, amount);
}
message.channel.bulkDelete(messages).catch(error => console.log(error.stack));
});
}else{
message.reply('This Spell is too powerful for you.')
}
}
}
如果您有任何想法,我们将不胜感激。通过将
消息传递给您,您将删除频道中的所有消息,因为channel.fetch()
返回整个文本频道消息。不接受数值。因此,当n等于非负整数时,可以调用channel.bulkDelete(n)
e、 g
检查这是否对您有帮助(我稍微改进了您的代码)
异步运行(消息,参数){
if(['Dev','Bot Dev','Moderator'].some((r)=>message.member.roles.cache.has(role=>role.name==r))){
const user=message.indications.users.first();
//解析量
const amount=!!parseInt(message.content.split(“”)[1])?parseInt(message.content.split(“”)[1]):parseInt(message.content.split(“”)[2])
if(!amount)返回message.reply('必须指定要删除的金额!');
if(!amount&!user)返回message.reply('必须指定用户和金额!');
//获取100条消息(将被过滤并降低到最大请求量)
message.channel.messages.fetch({
限额:金额>5?5:金额,
})。然后((消息)=>{
messages=messages.filter(m=>m.author.id===user.id).array();
message.channel.bulkDelete(messages.catch)(error=>console.log(error.stack));
});
}否则{
回复('这个法术对你来说太强大了')
}
}
}
让我试着理解一下,您想删除一定数量的消息,但最大数量是5?这会使}else{函数出错
var num = 15 // whatever number you want
message.channel.bulkDelete(num).catch(error => console.log(error.stack));