TypeError:无法读取未定义的属性'id'(message.mentions.users.first())

时间:2018-06-23 09:50:10

标签: javascript discord.js

我正在JS的Discord机器人上编写有关经济性的功能, 所以我需要获取我的会员的ID,并且正在用

进行测试
let defineduser = '';
  if (!args[1]){
    defineduser = message.author.id
  } else {
    let firstMentioned = message.mentions.users.first();
    defineduser = firstMentioned.id;

但这实际上不起作用...

我想用2个参数使命令'!addmoney': 数量和用户。 实际的数量是有效的,如果我不给出第二个参数,我的代码实际上是有效的,因为这是我的ID。 我认为message.mentions.users.first();已过时,但discord.js文档中并未提及...

1 个答案:

答案 0 :(得分:0)

Discord.js的文档中确实有message.mentionshttps://discord.js.org/#/docs/main/stable/class/Message?scrollTo=mentions

答案

让我们说消息是!addmoney 10 <@0000000>

编辑:当提到@user时,提及的文本为<@[user's id]>

并且args是["10", "<@0000000>"],这是假设您正确分割了message.content

let userID;
if(args[1]){
    let mention = message.mentions.users.first();
    userID = mention!=undefined ? mention.id : args[1];
    //You should also check if the id supplied via args[1] is a valid id.
}
else {
    console.error(`no id supplied`)
    return;
}

注意:我见过的大多数人都这样做

args = message.content.split(` `);
//args now equals ["!addmoney" "10", "<@0000000>"]
//which means args[1] = "10",
args.shift();
//args now equals ["10", "<@0000000>"]

希望这会有所帮助!