【问题标题】:Bot Discord error "Cannot read property 'send' of undefined"Bot Discord 错误“无法读取未定义的属性‘发送’”
【发布时间】:2021-02-22 10:40:29
【问题描述】:

我试图让机器人在有人在消息中做出反应时发送私人消息,但给出错误“无法读取未定义的属性'发送'”

这是我的代码:

bot.on('raw', async dados => {
      if(dados.t !== "MESSAGE_REACTION_ADD") return
      if(dados.d.message_id != "775402467692642305") return

      let servidor = bot.guilds.cache.get("544551800930435096")
      let membro = servidor.members.cache.get(dados.d.user_id)

      let tts = dados.d.user_id

      try{
        
      if(dados.t === "MESSAGE_REACTION_ADD") {
        if(dados.d.emoji.name === "????"){
          bot.membro.send("eae")
        }
        }
      }catch (e){
          console.log(e)
        }


    })

【问题讨论】:

  • bot.membro.send 对吗?不应该是bot.send
  • membro,我放是为了获取用户id
  • 你在哪里设置的?
  • 让 membro = servidor.members.cache.get(dados.d.user_id)
  • 如果membro 是会员,那么您只需.send(),它就会向该会员发送私信。

标签: javascript node.js discord discord.js


【解决方案1】:

您的代码存在的问题是您尝试向不存在的bot.membro 发送 DM。此外,尝试使用 bot.send() 会给您一个错误,因为您正在尝试 DM 机器人应用程序甚至机器人用户,这两者都是不可能的。您可以使用membro.send(),假设membro 是一个用户,它将向他们发送一条消息。下面是代码

bot.on('raw', async dados => {
      if(dados.t !== "MESSAGE_REACTION_ADD") return
      if(dados.d.message_id != "775402467692642305") return

      let servidor = bot.guilds.cache.get("544551800930435096")
      let membro = servidor.members.cache.get(dados.d.user_id)

      let tts = dados.d.user_id

      try{
        
      if(dados.t === "MESSAGE_REACTION_ADD") {
        if(dados.d.emoji.name === "?"){
          membro.send("eae") // Sends msg to the user 
        }
        }
      }catch (e){
          console.log(e)
        }


    })

【讨论】:

  • 不客气!请点击投票旁边的复选标记,向其他人表明此答案对您有所帮助
猜你喜欢
  • 2021-08-29
  • 2020-06-20
  • 1970-01-01
  • 2018-02-13
  • 2021-03-31
  • 1970-01-01
  • 2020-10-15
  • 2021-09-14
  • 2021-02-01
相关资源
最近更新 更多