简体   繁体   English

Discord.js 公会成员更改活动时如何感知

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

I want to make a discord bot which is scraping activities of guild members.我想制作一个 discord 机器人来抓取公会成员的活动。

So, I read docs of discord.js.所以,我阅读了 discord.js 的文档。

But I don't know how to sense when a member changes the activity.但我不知道如何感知成员何时更改活动。

Is there an example for this situation?这种情况有例子吗?

use Client#presenceUpdate event to track presence updates.使用Client#presenceUpdate事件来跟踪状态更新。 See https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-presenceUpdate请参阅https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-presenceUpdate

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

I don't really know what kind of activity are you looking for, but any activity it's handled via the event emitter.我真的不知道你在寻找什么样的活动,但它是通过事件发射器处理的任何活动。 For example, let's say the user has sent a command via message, you can capture that like this.例如,假设用户通过消息发送了一条命令,您可以像这样捕获它。

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

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

If you're working with VsCode, intelliSense will make it easy to know quickly what sort of events you can listen to.如果您正在使用 VsCode,intelliSense 可以让您轻松快速地了解您可以收听哪些类型的事件。 But here's a list of all events:但这里是所有事件的列表:

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

If i'm understanding your question correctly the event you're looking for would be如果我正确理解您的问题,您正在寻找的事件将是

userUpdate 用户更新

Emitted whenever a user's details (eg username) are changed.每当用户的详细信息(例如用户名)更改时发出。 Triggered by the Discord gateway events USER_UPDATE, GUILD_MEMBER_UPDATE, and PRESENCE_UPDATE.由 Discord 网关事件 USER_UPDATE、GUILD_MEMBER_UPDATE 和 PRESENCE_UPDATE 触发。

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

or also或者也

presenceUpdate 存在更新

Emitted whenever a guild member's presence (eg status, activity) is changed.每当公会成员的存在(例如状态、活动)发生变化时发出。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM