无法访问 discord.js 中的 user.presence.activities

Posted

技术标签:

【中文标题】无法访问 discord.js 中的 user.presence.activities【英文标题】:Cannot access to user.presence.activities in discord.js 【发布时间】:2021-04-27 05:49:55 【问题描述】:

我正在编写一个 discord.js 机器人,我正在尝试获取用户的活动(他正在玩的游戏、发现事物等)。

当我查看文档时,我看到了一个 Presence 类和一个 .activities 属性,它应该返回用户活动的数组。

但是,我在运行代码时收到“无法发送空消息”,活动正在运行

这是我的实际代码:

let member = message.users.mention.first || message.author;

message.channel.send(member.presence.activities);

【问题讨论】:

你有没有试过console.log(member.presence.activities)看看会员是否真的有活动? 是的。它返回一个空数组,即使我有一个活动显示在不和谐... 这看起来像是特权意图的问题。看看this对你有没有帮助 【参考方案1】:

很可能是用户没有活动,所以member.presence.activities返回null,从而导致empty message错误。

要抓住这一点,很简单:

let member = message.users.mention.first || message.author;

let memberActivies = member.presence.activities;
if (!memberActivities) return message.channel.send(':x: User has no activity set'); 

message.channel.send(memberActivities); //sends the activities

另外,如果activities 参数是一个数组,您肯定必须使用普通语法arr[0] 从数组中进行选择吗?

【讨论】:

我已经尝试过 console.log(memberActivities),但它没有返回“用户没有活动集”,它仍然给出“无法发送空消息”。我真的不知道怎么了。

以上是关于无法访问 discord.js 中的 user.presence.activities的主要内容,如果未能解决你的问题,请参考以下文章

Discord Bot - 无法从 Intents 访问 FLAGS

Discord.js(节点)中的错误请求并且无法找出导致它的原因

无法读取未定义 discord.js 的属性“名称”尝试读取 json 中的数组

TypeError:无法读取发送的属性(Discord.js)

当不应该在 discord.js 命令处理程序中未定义时,无法读取未定义的属性

Discord.js:TypeError:无法读取未定义的属性“删除”