【问题标题】:Discord.js Can't ban member by message authorDiscord.js 无法通过消息作者禁止成员
【发布时间】:2021-12-31 11:51:12
【问题描述】:

我希望机器人禁止会员。

代码:

  let member = message.guild.members.get(message.author);
  if(message.content === message.content && message.channel.id === id)
    member.ban("reason")
    message.channel.send("x") 

所以基本上,只要会员在指定频道发送消息,他就会被禁止。但是,它并不禁止。我试着像message.author.id 那样做,但没有成功。另外,正如我所说,它不会禁止该成员,而是将"x" 消息发送到频道。我想解决封禁问题,一旦他被封禁,它将发送"x" 消息。

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:
    1. <GuildMemberManager>.get 不存在。你应该使用它的fetch 方法,它返回一个<GuildMember>,你可以使用它的ban 方法来禁止它。此方法返回一个 Promise,因此您需要 await 它。所以把let member = message.guild.members.get(message.author);换成let member = await message.guild.members.fetch(message.author.id);

    2. 表达式 message.content === message.content 不应该是一个条件,因为它总是返回 true。

      let member = await message.guild.members.fetch(message.author.id);
    
      if(message.channel.id === id)
        member.ban("reason")
        message.channel.send("x") 
    

    另外不要忘记处理Promise 拒绝fetchbansend 方法。

    【讨论】:

    • 上面写着UnhandledPromiseRejectionWarning: TypeError: message.guild.members.fetch is not a function
    • 您使用的是哪个版本的 Discord.JS? @MattThhh
    • 11.5.1.我降级是因为我必须完全重写 bot,而且我不太了解新版本。
    • V13 并不难。我会说试一试,因为不太可能有人能够在如此旧的版本上为您提供帮助,甚至没有在线可用的文档。尝试启动here
    猜你喜欢
    • 2018-12-02
    • 2020-10-08
    • 2021-05-12
    • 2021-03-01
    • 2019-02-28
    • 2021-07-24
    • 2018-09-01
    • 2021-02-06
    • 2020-12-08
    相关资源
    最近更新 更多