如何在Discord.js上从forEach中排除某些内容

时间:2020-04-30 16:13:44

标签: javascript bots discord discord.js

所以我在discord.js中并且正在执行一条命令,该命令会将服务器上的所有人踢出。问题是,我想踢除我以外的所有人,但我不知道该怎么做,也没有找到任何教程。这是我的代码:

bot.on("message", async message => {
    if(message.content.startsWith(`${prefix}gone`)) {
      message.guild.members.cache.forEach(member => member.ban())
    }

}
)

我希望有人帮忙。预先谢谢你+

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

const MY_USER_ID = 'your user id'
bot.on("message", async message => {
  if(message.content.startsWith(`${prefix}gone`)) {
    message.guild.members.cache.forEach(member => {
      if (member.id !== MY_USER_ID) {
        member.ban()
      }
    })
  }
})

答案 1 :(得分:1)

在您的.forEach()循环中,您需要添加检查以查看member是否具有与您相同的ID,因此您可以通过以下两种方式进行操作:

通过使漫游器忽略键入命令的用户:

message.guild.members.cache.forEach(member => {
  if (member.id !== message.author.id) member.ban()
})

或者,如果您只想使其不被禁止,则:

message.guild.members.cache.forEach(member => {
  if (member.id !== 'USER_ID') member.ban()
})

您也可以像这样在.filter()内写这些支票:

message.guild.members.cache.filter(member => member.id !== 'USER_ID').forEach(member => member.ban())