Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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 bot clear脚本如何跳过固定消息?_Javascript_Discord_Discord.js - Fatal编程技术网

Javascript bot clear脚本如何跳过固定消息?

Javascript bot clear脚本如何跳过固定消息?,javascript,discord,discord.js,Javascript,Discord,Discord.js,我写了一个脚本叫clear。 此脚本按预期工作 但是我的清除脚本如何跳过频道中的固定消息呢 这是我的剧本: module.exports.run = async (bot, message, args) => { if (message.deletetable) { message.delete(); } // Member doesn't have permission if (!message.member.hasPermiss

我写了一个脚本叫clear。 此脚本按预期工作

但是我的清除脚本如何跳过频道中的固定消息呢

这是我的剧本:


module.exports.run = async (bot, message, args) => {


    if (message.deletetable) {
        message.delete(); 
    }

    // Member doesn't have permission
    if (!message.member.hasPermission("MANAGE_MESSAGES")) {
        return message.channel.send("You can't delete messages...") // .then(m => m.delete(5000));
    }

    // Check if args[0] is a number
    if (isNaN(args[0]) || parseInt(args[0]) <= 0) {
        return message.channel.send("Yeah... That's not a number? I also can't delete 0 messages by the way.") // .then(m => m.delete(5000));

    }

    // Maybe the bot can't delete messages
    if (!message.guild.me.hasPermission("MANAGE_MESSAGES")) {
        return message.channel.send("Sorry... I can't delete messages.") // .then(m => m.delete(5000));
    }

    let deleteAmount;

    if (parseInt(args[0]) > 100) {
        deleteAmount = 100;
    } else {
        deleteAmount = parseInt(args[0]);
    }

    message.channel.bulkDelete(deleteAmount, true)
        .then(deleted => message.channel.send(`I deleted \`${deleted.size}\` messages.`))
        .catch(err => message.channel.send(`Something went wrong... ${err}`));
}   


module.exports.help = {
  name: "clear"
}

module.exports.run=async(bot、消息、args)=>{
if(message.deletetable){
message.delete();
}
//成员没有权限
如果(!message.member.hasPermission(“管理_邮件”)){
returnmessage.channel.send(“您不能删除邮件…”)/。然后(m=>m.delete(5000));
}
//检查args[0]是否为数字
if(isNaN(args[0])| | parseInt(args[0])m.delete(5000));
}
//也许机器人无法删除邮件
如果(!message.guild.me.hasPermission(“MANAGE_MESSAGES”)){
returnmessage.channel.send(“对不起……我无法删除邮件”)/。然后(m=>m.delete(5000));
}
让我们来看看数量;
if(parseInt(args[0])>100){
删除量=100;
}否则{
deleteAmount=parseInt(args[0]);
}
message.channel.bulkDelete(deleteAmount,true)
.then(deleted=>message.channel.send(`I deleted\`${deleted.size}\`messages.`))
.catch(err=>message.channel.send(`Something should…${err}`));
}   
module.exports.help={
名称:“清除”
}

我希望有人能帮助我,因为这将是对我的clear脚本的一个很好的补充。

获取该频道的所有消息,然后固定消息,使用
过滤器进行区分,只保留非固定消息,然后删除这些消息

client.on("message", async message => {
  if (message.author.bot) return;

  if (message.content === "/bulk") {
    const allMessages = await message.channel.messages.fetch()
    const deletable = allMessages.filter(message => !message.pinned)
    await message.channel.bulkDelete(deletable, true)
  }
});

你好,非常感谢你的评论。添加此代码时,我收到以下错误消息:
(节点:3892)未处理PromisejectionWarning:TypeError:message.channel.fetchPinned不是一个函数
您可以在此处找到我的pastebin:实际上,
fetchPinned
似乎是MessageManager的一种方法。我编辑我的答案这是我得到的错误
(节点:33204)未经处理PromisejectionWarning:TypeError:pinnedMessages.includes不是一个函数
编辑了我的pastebin代码(相同的url):-感谢检查Zooly它返回一个承诺,检查如何在那里使用includes。很抱歉,我现在无法进行测试首先,谢谢!谢谢你的检查和帮助;)。当你有时间看一看,我的错误可能意味着什么。我希望你能找到解决办法。希望很快收到你的来信。格尔茨