首页 > 解决方案 > 清除命令 discord.js

问题描述

我正在尝试创建一个清除命令并且它可以工作,但我希望机器人在我使用该命令时不要删除固定的消息。我在代码中包含什么以防止它删除固定的消息?目前这是代码 -

if(message.content.toLowerCase().startsWith("s!purge")) {
let arg = message.content.split(" ")
  message.delete() 
let clear = arg[1];
if(!clear) return message.channel.send(`:x: | \`Incorrect usage of command you need to provide an amount of messages to Clear.\` 
**Example:** \`s!purge 50\` `)
if(isNaN(clear)) return message.channel.send(":x: | ``Please Put a Valid Number to Clear messages.``")
if(clear > 100) return message.channel.send(":x: | ``I can't Clear more than 100 messages.``")
if(clear < 1) return message.channel.send(":x: | ``You cannot Clear less than 1 message.``")
message.channel.bulkDelete(clear)
message.channel.send(`:white_check_mark: | \`Succesfully cleared ${clear} messages! \` `)
.then(message => 
 setTimeout(()=> message.delete(), 2000)
 )
}

标签: discord.js

解决方案


有一种方法可以检查消息是否已固定。这是message.pinned

if (!message.pinned) {
    // delete the message
}

我希望这能解决你的问题!

否则你可以const nonPinnedMsgs = await message.channel.messages.fetch({ limit: thePurgeAmount }).filter(m => m.pinned)批量删除(nonPinnedMsgs)


推荐阅读