discord.js - 清除命令 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)
)
}
解决方案
有一种方法可以检查消息是否已固定。这是message.pinned。
做
if (!message.pinned) {
// delete the message
}
我希望这能解决你的问题!
否则你可以const nonPinnedMsgs = await message.channel.messages.fetch({ limit: thePurgeAmount }).filter(m => m.pinned)
批量删除(nonPinnedMsgs)
推荐阅读
- node.js - 向我的 fetch 请求添加标头会导致 CORS 失败(快速)
- javascript - 有没有一种方法可以在不使用 ANTD 上的默认按钮的情况下关闭 Modal?
- python - Django - 如何使用 id 字段修复模型
- java - Java 客户端/服务器不返回 UTF-8 字符串
- c# - SaveChangesAsync 仍在 c# 中同步插入
- javascript - 如何在 Javascript 中创建字典字典
- scala - 部分应用的函数是否可以调用其部分应用的自身?
- java - Java 11 XML 解析器在 XHTML 1.1 文档上调用 normalizeDocument() 时暂停并显示实体错误
- google-kubernetes-engine - 耗尽 GKE 并关闭底层 Compute Engine - 怎么做
- python - 了解装饰器python