TypeError:无法读取未定义的属性“发送”?

时间:2020-01-21 21:42:48

标签: javascript

我正在尝试让我的discord javascript discord bot使用ID向我发送dm,但它一直在说:

TypeError:无法读取未定义的属性“发送”。

有什么主意吗?

const Discord = require('discord.js');
const{prefix,token} = require('./config.json');
const bot = new Discord.Client();

bot.once('ready', () => {
  console.log(`Ready!`);
});

bot.on('message', message => {
  let e = message.content.split(" ");

  if(message.content.startsWith(`${prefix}help`))
  {
    if (message.channel.type == "dm")
    {
      message.author.send("use !send");

    }

  } 

  if(message.content.startsWith(`${prefix}send`))
  {
    if (message.channel.type == "dm")
    {
      try{
      message.author.send("Message sent");
      message.client.users.get("266928832726xxxxxxx").send("someMessage");
    }catch(e){console.log("[ERROR]",e)}
    }

  } 

})

bot.login(token); 

2 个答案:

答案 0 :(得分:0)

好吧,要知道send的问题所在,首先要做的是console.log(message)并检查是否得到了名为author的值,然后检查author是否具有值或称为send的方法。

答案 1 :(得分:0)

您将客户定义为漫游器const bot = new Discord.Client();

并尝试以message.client.users.get("266928832726xxxxxxx")的身份获得成员 邮件没有属性client.users,请使用bot.users.get()

bot.on('message', message => {
  let e = message.content.split(" ");

  if(message.content.startsWith(`${prefix}help`)){
    if (message.channel.type == "dm"){
      message.author.send("use !send");
    }
  }

  if(message.content.startsWith(`${prefix}send`)){
    if (message.channel.type == "dm"){
      message.author.send("Message sent");
      bot.users.get("266928832726xxxxxxx").send("someMessage").catch(console.error);
    }
  } 
})