Discord.js 存在用户

Posted

技术标签:

【中文标题】Discord.js 存在用户【英文标题】:Discord.js presence user 【发布时间】:2021-03-25 13:47:36 【问题描述】:

当我遇到错误时,我不确定要为用户输入什么:

Cannot read property 'status' of undefined

我的目标是让我的管理员状态像 Stat bot 一样在 VC 频道名称中。

PICTURE IN VSC


    let user = 7262235XXXXX921660
    let statusUser = user.presence.status
    client.channels.cache.get("7881455XXXXX434389").setName(Admins Status: statusUser); //its a voice channel

    setTimeout(refreshData, 10*1000);

【问题讨论】:

user 是一个数字,它没有presence 属性。 【参考方案1】:

你必须通过客户端获取用户。

V11:

let user = client.fetchUser("7262235XXXXX921660")
let statusUser = user.presence.status

V12:

let user = client.users.fetch("7262235XXXXX921660")
let statusUser = user.presence.status

然后你可以得到用户的存在。

【讨论】:

client.fetchUser 不是函数 @Ariagatang 你可以试试client.users.fetch('7262235XXXXX921660') 仍然没有运气,只是无法读取属性“状态”【参考方案2】:

首先,我会确保您在 Discord 应用程序主菜单中为您的机器人启用了存在意图。您需要在线状态意图来接收在线状态事件数据。

然后,获取用户。在您的情况下,您可以将当前用户变量替换为 let user = client.fetchUser("theiruserid")

【讨论】:

TypeError: client.fetchUser 不是函数【参考方案3】:

不知道你的问题是否解决了,但你可以试试

// Get Server
const guild = await client.guild.cache.get("ID")
//Get user
const user = await guild.members.cache.get("ID here also")
//get presence
const presence = user.presence.status

请记住,在异步函数中使用它,并且存在不是每个用户存储的,它存在于公会成员缓存中。如果您尝试仅获取用户存在,它将返回未定义。 并且您需要启用意图(两者),您可以在开发门户中找到。

【讨论】:

以上是关于Discord.js 存在用户的主要内容,如果未能解决你的问题,请参考以下文章

检查 Discord 服务器中是不是存在用户 ID

Discord.js 存在活动状态和名称存在问题

discord.js v13 成员存在未定义

Discord JS(机器人存在)

如何检查消息是不是存在? (discord.js)

Discord.js 变量在定义时不存在?