Discord.js公会成员变更时如何感知activity

Discord.js How to sense when member of guild changes the activity

我想制作一个 discord 机器人,用于抓取公会成员的活动。

所以,我阅读了 discord.js 的文档。

但我不知道如何感知成员何时更改activity。

有这种情况的例子吗?

使用 Client#presenceUpdate 事件来跟踪状态更新。参见 https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-presenceUpdate

<Client>.on("presenceUpdate", (oldPresence, newPresence) => {
    // do something
});

我真的不知道您在寻找哪种 activity,但是任何 activity 都是通过事件发射器处理的。例如,假设用户通过消息发送了命令,您可以像这样捕获它。

const { Client } = require('discord.js');
const client = new Client();

//event emitter
client.on('message', (message) => {
//do something
}

如果您正在使用 VsCode,intelliSense 将使您能够轻松快速地了解您可以收听的事件类型。但这里是所有事件的列表:

https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-channelCreate

如果我正确理解你的问题,你正在寻找的事件就是

userUpdate

每当用户的详细信息(例如用户名)发生更改时发出。由 Discord 网关事件 USER_UPDATE、GUILD_MEMBER_UPDATE 和 PRESENCE_UPDATE.

触发
client.on('userUpdate', (oldUser, newUser) => {
// do something
});

presenceUpdate

每当公会成员的存在(例如状态,activity)发生变化时发出。

client.on('presenceUpdate', (oldPresence, newPresence) => {
// do something
});