Javascript Discord.js如何创建名称更改历史记录命令

Javascript Discord.js如何创建名称更改历史记录命令,javascript,discord,discord.js,Javascript,Discord,Discord.js,我想做一个代码,显示你的名字变化的历史,比如NotSoBot 有人能帮我吗?这些机器人使用自己的数据库。Discord不会记录这些更改。您不能仅使用discord.js执行此操作。唯一的问题是,如果你的机器人不是很大,它将不会非常有效,因为你的机器人无法访问每一个更改用户名的用户。如果您的机器人处于脱机状态,或者在您的机器人开始记录这些更改之前,任何用户名都无法跟踪 如果仍要执行此操作,请使用数据库和discord.js事件并记录所有用户名。请注意,即使用户的头像已更改或已识别,也会触发此事件

我想做一个代码,显示你的名字变化的历史,比如NotSoBot


有人能帮我吗?

这些机器人使用自己的数据库。Discord不会记录这些更改。您不能仅使用discord.js执行此操作。唯一的问题是,如果你的机器人不是很大,它将不会非常有效,因为你的机器人无法访问每一个更改用户名的用户。如果您的机器人处于脱机状态,或者在您的机器人开始记录这些更改之前,任何用户名都无法跟踪


如果仍要执行此操作,请使用数据库和discord.js事件并记录所有用户名。请注意,即使用户的头像已更改或已识别,也会触发此事件。

如果您打算使用审核日志获取所有名称更改,我建议您进行一些研究

我不会向您提供您正在寻找的完整代码,而是为您自己找到解决方案的踏脚石

您要做的是获取审核日志,并根据命令中实现的给定参数指定选项。(即您要搜索的用户。)

检索名称更改的简单方法:

message.guild.fetchAuditLogs({type:'MEMBER\u UPDATE',user:'DESIRED user ID'})。然后(异步(审计)=>{
让log=audit.entries.first().changes
console.log(日志)
})
输出:

[{key:'nick',old:,new:}]
因为昵称就是你要找的
Old
是旧的昵称
New
是新的昵称


这将为您指明正确的方向,因为其余部分并不太复杂。

昵称更改存储在审核日志中,discord bot可以访问该日志。在某些情况下,数据库可能会更快,但是,正如您所说,有很多事情可能会使该选项变得不理想。但是说
你不能只用discord.js来做这件事根本不是真的。我认为当他说一个机器人有过去的用户名时,他说的不是一个机器人有昵称,而是用户名。所以不仅限于公会。如果公会有很多昵称日志,他无法在一个请求中获取所有信息。我明白你的意思,是的,如果用户更改了他们的实际不一致用户名,唯一的登录方式就是通过数据库和大量检查(如果他们想要100%的准确率[或接近它],这可能会成为API垃圾邮件。)但他仍然可以使用
.fecthAuditLogs
选项在一个请求中获取昵称日志(只要用户不每秒更改昵称)。