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 存在用户的主要内容,如果未能解决你的问题,请参考以下文章