Javascript bot clear脚本如何跳过固定消息?
我写了一个脚本叫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
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。很抱歉,我现在无法进行测试首先,谢谢!谢谢你的检查和帮助;)。当你有时间看一看,我的错误可能意味着什么。我希望你能找到解决办法。希望很快收到你的来信。格尔茨