【问题标题】:Ban outside server users in Discord.js 12.5.1在 Discord.js 12.5.1 中禁止外部服务器用户
【发布时间】:2021-09-29 22:43:02
【问题描述】:

我正在尝试制作一个禁止使用他的 ID 禁止某人的命令,并且效果很好,问题是当我尝试禁止不在服务器上的用户(使用他的 ID)或仅使用 1数字,命令不起作用,机器人崩溃。我认为问题是由 if 语句引起的,但我不确定。

这是我的代码:

  let args = messageArray.slice(1);

  if(message.content.startsWith(prefix + 'ban')) {
      let toBan = message.guild.members.cache.get(args[0]) || message.mentions.members.first() || message.guild.members.cache.find(x => x.user.username.toLowerCase() === args.slice(0).join(" ") || x.user.username === args[0]);
      if(!args) return message.channel.send('You need to mention a user!')
      if (!message.member.hasPermission("VIEW_AUDIT_LOG")) return message.channel.send("You don't have enough permissions.")
      if (!message.guild.me.hasPermission("BAN_MEMBERS")) return message.channel.send("I don't have enought permissions.")
             if(!toBan.bannable) return message.channel.send("I can't ban that user!")
      if(toBan === message.author) return message.channel.send("No.")
      if(toBan.roles.highest.position >= message.member.roles.highest.position) return message.channel.send("You can't ban anyone that have a high or same role that you have.")

      const reason = args[1] || "Undefined";

      member.ban(`${toBan}`, {
        reason: reason
      })
           message.channel.send(`${toBan} Has been banned of the server by ${message.author}!`)
       }

【问题讨论】:

  • 能否提供一些错误日志?
  • 我认为你不能禁止不是你公会成员的人

标签: javascript node.js discord discord.js


【解决方案1】:

您可以使用GuildMemberManager.ban(),它采用UserResolvable。它可以是UserGuildMember,甚至只是一个Snowflake(ID)。


简单示例:

message.guild.members.ban("12345678901234567");

【讨论】:

    猜你喜欢
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 2021-03-16
    • 1970-01-01
    • 2021-10-13
    相关资源
    最近更新 更多