我的Discord机器人无法获得用户状态。解决方案?

时间:2019-06-26 22:31:37

标签: node.js discord.js

我正在尝试让漫游器定期检查特定用户的状态。如何获取该用户的状态?

我根本无法使它正常工作,无论是收到错误消息还是未定义。

方法1:

var test = new Discord.User("*userid*");

function findStatus() {
  var status = test.user;
  console.log(test);
  console.log(status);
}

方法2:

var status = "*userid*".presence.status;

我期望的是一个字符串(“在线”,“空闲”,“离线”),说明用户的状态。

结果1: 用户{} 未定义

结果2: 无法读取未定义的属性“状态”。

1 个答案:

答案 0 :(得分:0)

问题:

您的第一个方法不起作用,因为您尝试自己构造一个新的User对象。您对构造函数的使用实际上是不正确的,但是无论如何它不会有任何有效的数据。构造函数只能在内部使用。 User.user也不是用户的有效属性。

您的第二种方法不起作用,因为您正在尝试读取字符串不存在的属性。

解决方案:

0。通过Client构造函数创建Discord Client。
1.要从Discord中检索用户,请使用Client.fetchUser()方法。
2.要检查其状态,请使用User.presencePresence.status

client.fetchUser('someID')
  .then(user => {
    if (!user) return console.error('Unable to find user.');

    const status = user.presence.status;

    console.log(`${user.tag}'s status is ${status.toUpperCase()}.`);
  })
  .catch(console.error);