簡體   English   中英

清除命令未正確刪除消息 discord.js v13

[英]Clear command is not deleting messages correctly discord.js v13

當我想使用以下代碼清除消息時:

await message.channel.messages.fetch({limit: args[0]}).then(messages =>{
message.channel.send(`Deleting Messages...`).then(msg => {
setTimeout(() => msg.delete(), 500)
})
message.channel.bulkDelete(messages);
});

它有效,但是當我說:“${prefix}clear 3”時,它會刪除 2 條消息。 或者當消息超過過去 14 天時,它不能刪除消息。

列表:

  1. 我希望機器人刪除 args 中指定的特定數字。
  2. 當請求的消息量是過去 14 天時,它會顯示“抱歉,我無法刪除這些消息,因為它們是過去 14 天的。”

額外說明:我使用的是 discord.js v13 和 node.js v16

  1. 您的機器人還將您的命令視為一條消息,並將其刪除。 這就是為什么它只刪除另外 2 條消息。 為防止您必須先使用message.delete()添加過濾器或刪除命令
  2. Channel.bulkDelete()默認不會刪除超過 2 周的消息! 要啟用filterOld參數,您必須使用Channel.bulkDelete(number, true)並且您也可以刪除這些消息!

首先,您的命令是一條消息,這就是為什么它刪除的數量少於該數量。其次,機器人無法刪除超過 2 周的消息第三,您不能刪除超過 100 條消息。 所以你可以這樣做:

const amount = args[0]

if (amount > 100 || amount < 1) {
 return message.channel.send({content: `I cannot delete 100 messages or more`})
        }
const messages = await message.channel.messages.fetch({
            limit: amount + 1,
        }); 
await message.channel.bulkDelete(messages, true)

暫無
暫無

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

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