我正在尝试在 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/