Discord.js 如何感知公会成员何时更改活动
Posted
技术标签:
【中文标题】Discord.js 如何感知公会成员何时更改活动【英文标题】:Discord.js How to sense when member of guild changes the activity 【发布时间】:2021-05-29 09:59:31 【问题描述】:我想做一个不和谐的机器人来抓取公会成员的活动。
所以,我阅读了 discord.js 的文档。
但我不知道如何感知成员何时更改活动。
这种情况有例子吗?
【问题讨论】:
【参考方案1】:使用Client#presenceUpdate
事件来跟踪状态更新。见https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-presenceUpdate
<Client>.on("presenceUpdate", (oldPresence, newPresence) =>
// do something
);
【讨论】:
哦,这就是这个问题的解决方案。谢谢。【参考方案2】:我真的不知道你在寻找什么样的活动,但它是通过事件发射器处理的任何活动。例如,假设用户通过消息发送了一条命令,您可以像这样捕获它。
const Client = require('discord.js');
const client = new Client();
//event emitter
client.on('message', (message) =>
//do something
如果您正在使用 VsCode,智能感知可以让您轻松快速地了解您可以收听哪些类型的事件。但这里是所有事件的列表:
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
每当公会成员的存在(例如状态、活动)发生变化时发出。
client.on('presenceUpdate', (oldPresence, newPresence) =>
// do something
);
【讨论】:
感谢您的评论,我有信心尝试使用客户端处理程序。以上是关于Discord.js 如何感知公会成员何时更改活动的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js - 发送消息的计数器,DM给公会的所有成员