簡體   English   中英

Discord.js 機器人,如何在沒有引腳的情況下進行清除?

[英]Discord.js bot, how to purge without pins?

這是我的清除命令,我希望我的清除忽略引腳,有人知道我該怎么做嗎?

這是我現在得到的:

    } else if (message.content.toLowerCase().startsWith(`${PREFIX}purge`)) {
        if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send("You don\'t have permissions to do this command")
        if (!message.guild.me.hasPermission('MANAGE_MESSAGES')) return message.channel.send("I don\'t have permissions to do this command")
        if (!args[1]) return message.channel.send("You need to specify a number of messages to purge")
        if (isNaN(args[1])) return message.channel.send("That isn\'t a valid amount of messages to purge")
        if (args[1] > 100 || args[1] < 2) return message.channel.send("Make sure that your amount is ranging 2 - 100")
        try {
            await message.channel.bulkDelete(fetch(message).filter(message => !message.pinned)).size
        } catch {
            return message.channel.send("You can only bulk delete messages within 14 days of age")
        }
        var embed = new Discord.MessageEmbed()
        .setAuthor(`${message.author.username} - (${message.author.id})`, message.author.displayAvatarURL())
        .setThumbnail(message.author.displayAvatarURL())
        .setColor('#FFAE00')
        .setDescription(`
**Deleted:** ${args[1]}
**Action:** Purge
**Channel:** ${message.channel}
**Time:** ${moment().format('llll')}
        `)
        const channel = message.guild.channels.cache.find(c => c.name === "audit-log")
        channel.send(embed)
    }
})

await message.channel.bulkDelete(fetch(message).filter(message => !message.pinned)).size

順便說一句,最后一行不起作用,但我認為我需要修改

用這個:

await message.channel.bulkDelete(
  (await message.channel.messages.fetch({limit: args[1]}))
    .filter(m => !m.pinned)
)

請注意,如果有固定消息,它將刪除比args[1]更少的消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM