【发布时间】:2019-10-01 18:25:36
【问题描述】:
【问题讨论】:
标签: javascript discord discord.js
【问题讨论】:
标签: javascript discord discord.js
这些机器人使用自己的数据库。 Discord 不会记录这些更改。你不能只使用 discord.js 来做到这一点。唯一的问题是,如果您的机器人不是很大,它不会非常有效,因为您的机器人无法访问每个更改用户名的用户。如果您的机器人离线或在您的机器人开始记录这些更改之前的任何用户名,则无法跟踪这些更改。
如果您仍想这样做,请使用数据库和 discord.js 事件 userUpdate 并记录所有用户名。请注意,即使用户的头像更改或区分,此事件也会触发。
【讨论】:
You cannot do this only with discord.js 根本不正确。
.fecthAuditLogs 选项在一个请求中获取昵称日志(只要用户不是每秒钟都更改他们的昵称)。
如果您打算使用审核日志来获取所有名称更改 - 我建议您进行一些 Documentation 研究。
我不会为您提供您正在寻找的完整代码,而是您自己解决问题的垫脚石。
您要做的是获取审核日志,并根据您的命令中实现的给定参数指定选项。 (即您要搜索的用户。)
检索名称更改的简单方法:
message.guild.fetchAuditLogs({type: 'MEMBER_UPDATE', user: 'DESIRED USER ID'}).then(async (audit) => {
let log = audit.entries.first().changes
console.log(log)
})
输出:
[ { key: 'nick', old: , new: } ]
Key 在昵称中是您正在寻找的。 Old 是旧昵称。 New 是新昵称。
这应该会为您指明正确的方向,因为其余部分并不太复杂。
【讨论】: