Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript discord.js消息批量删除仅删除限制,而不删除指定内容_Javascript_Bots_Discord.js - Fatal编程技术网

Javascript discord.js消息批量删除仅删除限制,而不删除指定内容

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 =>{

因此,我试图让bot删除指定的金额,而不是限制,限制是我想要删除的最大金额,当它指定仅删除限制金额时。我试过几次,但都没用

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));