javascript - 获取提到的用户的状态/事件

标签 javascript node.js discord discord.js

我正在尝试在 Discord JS 中为我​​的机器人创建一个命令,当触发时,该命令会获取该命令提到的用户并检索他们当前的游戏(如果没有游戏,则为状态)并发送一条消息,内容为提到的用户 已经玩游戏已过去的时间(如果可能,请发送游戏的图像(如果有的话))。

这是我当前的代码:

module.exports = {
    name: 'game',
    aliases: ['gm', 'status'],
    category: 'Commands',
    utilisation: '{prefix}game',

    execute(client, message) {
        let msgMention = message.mentions.members.first() || message.guild.member(message.author)

        console.log(msgMention.presence.activities[0])

        message.channel.send(msgMention.presence.activities[0].name);
    },
};

它对 .name 扩展名所做的所有操作都表示名称未定义,如果我删除 .name 它表示无法发送空消息。另外,我提到我自己目前正在玩一款游戏,该游戏在我的不和谐事件状态中公开显示。我该怎么做才能让它实际读取事件的名称和时间然后发送它?

最佳答案

您需要 GUILD_PRESENCES 意图。

const { Client, Intents } = require('discord.js');

const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MEMBERS, Intents.FLAGS.GUILD_PRESENCES] });

顺便说一句,我建议使用 message.member 而不是 message.guild.member(message.author)

let msgMention = message.mentions.members.first() || message.member

关于javascript - 获取提到的用户的状态/事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70101358/

相关文章:

javascript - 如何使用 javascript jquery 将具有多个 id 的数组制作为视频标签

javascript - 在不同的 div 和类中交换相同的文本

javascript - 在 javascript 中寻找正确的正则表达式以进行模式匹配

python - 使用 websockets 是 IPC 的好主意吗?

python - Discord.py 如何删除服务器中的所有角色

javascript - 在 AngularJS 中从 JSON 解析 $?

java - 通过 Java 传输到 Node.js 来加密和解密数据

javascript - 发现 Sequelize 循环依赖

javascript - 如何修复 RichEmbed?

python - 如何取消挂起的 wait_for