如果用户提及超过 5 人,则禁止该用户

时间:2021-07-03 11:27:43

标签: node.js discord.js

Heyo Axmyo 在这里,

如果用户提到超过 5 个人,我想自动禁止用户,而不是机器人

但是我尝试使用的代码没有任何作用..

任何帮助将不胜感激!

client.on("message", message => {
  if(message.mentions.members.size > 5) {
    message.author.ban();
  } 
})

1 个答案:

答案 0 :(得分:6)

您的方向是正确的,您的 if 语句是正确的。

message.author returns a User.

but .ban() is available only on GuildMember.

因此您需要将 User 转换为 GuildMember。幸运的是,消息对象包含它发送的 Guild,因此您可以执行以下操作:

client.on("message", message => {
  if(message.mentions.members.size > 5) {
    const user = message.author;
    const guildMember = message.guild.member(user);
    guildMember.ban();
  } 
})

请注意,.ban() 会返回一个承诺,因此如果您想在禁令后执行其他操作,最好执行以下操作:

client.on("message", async message => {
  if(message.mentions.members.size > 5) {
    const user = message.author;
    const guildMember = message.guild.member(user);
    await guildMember.ban();

    // Do other things...
  } 
})

编辑

消息对象有一个成员属性,谢谢Itamar S

client.on("message", async message => {
  if(message.mentions.members.size <= 5) return;

  await message.member.ban();
  // Do other things... 
})
相关问题