javascript - 如何获取用户活动 discord.js
问题描述
问题:我一直在尝试将“活动”字段添加到我的信息命令中,但它不起作用。
预期结果:响应其他内容以及 Activity 字段,显示用户正在做什么。
实际响应:undefined
正确显示其他所有内容,但显示/的 Activity 字段除外null
。
代码:
if (command == "info") {
const embed = new Discord.MessageEmbed()
let member = message.mentions.members.first() || message.guild.members.cache.get(args[1]) || message.guild.member(message.author)
const Roles = new Array()
message.guild.roles.cache.forEach(role => {
if (member.roles.cache.find(r => r.id == role.id)) {
Roles.push(role)
}
})
console.log(member.presence)
embed.setAuthor(user.tag, member.user.avatarURL())
embed.setTitle(` Welcome to ${user.username}'s Profile!`)
embed.addField('#️⃣ Tag:', member.user.tag)
embed.addField(' Joined Guild at:', member.user.joinedAt)
embed.addField(' Joined Discord at:', member.user.cretedAt
)
if (!member.presence.activities) {
embed.addField('⚽️ Activity:', 'Not playing anything')
} else {
embed.addField('⚽️ Activity:', `${member.presence.activities.type} ${member.presence.activities.name}\n${member.presence.activities.details}\n${member.presence.activities.state}`)
}
embed.addField(' Platform:', member.presence.clientStatus)
embed.addField(' Bot:', user.bot)
embed.addField(' Roles:', Roles.join(' | '))
embed.setFooter('Bot made with discord.js')
message.channel.send(embed)
}
解决方案
Presence.activities
是一个数组Activity
。
// Add check for empty activities array
if (!member.presence.activities || member.presence.activities.length == 0) {
embed.addField('⚽️ Activity:', 'Not playing anything')
} else {
const activity = member.presence.activities[0];
embed.addField('⚽️ Activity:', `${activity.type} ${activity.name}\n${activity.details}\n${activity.state}`);
}
大多数时候,您只需要数组的第一项。因为您很少看到有多项活动的用户。
推荐阅读
- mysql - 显示过去24小时内没有输入mysql的数据
- linux-kernel - linux内核树中主发送/接收的i2c协议是如何以及在哪里实现的?
- c++ - 如何使用 std::istringstream 获得正确的缓冲区大小以进行数据解析
- html - 为什么“宽度=设备宽度”完全不起作用?
- database - 从文件读取到数据库序言
- python - 链表中的冒泡排序。如何按艺术家姓名排序?
- pyspark - SparkContext 未在 zeppelin 中初始化
- azure - 标准 Azure CDN 是否支持 CORS
- java - 休眠刷新旧对象状态
- c# - 如何在从 HTML 生成的 PDF 中定义块的长度?