Discord.js 用于删除所有不是机器人命令的消息

Posted

技术标签:

【中文标题】Discord.js 用于删除所有不是机器人命令的消息【英文标题】:Discord.js for deleting all messages that are not bot commands 【发布时间】:2020-11-26 02:57:32 【问题描述】:

我正在尝试使用 node.js 制作一个简单的 Discord 机器人,删除任何不是由机器人编写的消息,或者不是 3 个允许的命令的消息;考虑一个反向白名单,其中频道中只允许使用特定的短语。

我一直在尝试添加 OR 运算符来过滤消息,但它保留的唯一消息是机器人或第一个给定字符串 (>fish) 的消息——我不知道如何保留使用列出的其他 2 个命令的消息。

client.on("message", (message) => 
  if(message.author == client.user)
    return
  if(message.author.bot)
    return
  if(message.content !== ">fish" | message.content !== ">fishinglvl" | message.content !== ">leaderboard fishing")
    return message.delete()
);

我也尝试了content.valueOf()&&||,但均无济于事。 这是我在 Js 中的第一个项目,所以我知道我肯定在某个地方搞砸了,但我就是想不出还有什么办法来修复它。 非常感谢!

【问题讨论】:

【参考方案1】:

最后if语句中的逻辑有缺陷,你需要使用这个:

if(![">fish", ">fishinglvl", ">leaderboard fishing"].includes(message.content))

【讨论】:

非常感谢!这立即修复了它。非常感谢你 - 我整个下午都在为这么简单的事情而发疯,哈哈!将批准您的答案 A.S.A.P!

以上是关于Discord.js 用于删除所有不是机器人命令的消息的主要内容,如果未能解决你的问题,请参考以下文章

discord.js 机器人正在删除所有消息

如何删除公会 discord.js 中的所有频道

Discord.js 删除所有成员角色

discord.js 发送自定义消息而不是镜像消息

从服务器中删除所有频道(语音和文本) - discord.js

Discord.js 删除命令消息