【问题标题】:Purge command discord.js [duplicate]清除命令 discord.js [重复]
【发布时间】:2021-11-16 15:23:06
【问题描述】:

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

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


    【解决方案1】:

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

    然后做

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

    希望能解决你的问题!

    否则您可以执行 const nonPinnedMsgs = await message.channel.messages.fetch({ limit: thePurgeAmount }).filter(m =&gt; m.pinned) 并批量删除 (nonPinnedMsgs)

    【讨论】:

    • 谢谢!我用arg[1] 替换了PurgeAmount,它起作用了!我使用了这段代码:- await message.channel.bulkDelete((await message.channel.messages.fetch({limit: arg[1]})).filter(m =&gt; !m.pinned)
    猜你喜欢
    • 2021-04-14
    • 2021-04-04
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 2020-09-28
    • 2017-06-13
    • 2019-11-11
    • 2022-09-30
    相关资源
    最近更新 更多