我想使用 discord.js 库在 Discord 上列出服务器成员。但是,一些(大部分是非事件的)用户以 <@123456789123456789>
(他们的 id)而不是 @Michal
(他们的可点击名称和用户个人资料)的形式显示。
可能是因为某些成员未缓存?我尝试在打印之前获取所有成员,即使使用 force
选项也是如此。但没有成功。
const executeCommand = async (client, message) => {
const members = await message.guild.members.fetch({ force: true })
message.channel.send({ embed: {
title: 'Members',
description: members.map(m => `<@${m.id}>`).join(', ')
} })
}
Presence intent
和 Server member intent
也在我的机器人上启用。我该如何解决?
最佳答案
不幸的是,这是不可能的,因为提及显示为 ID 而不是可点击的用户名实际上是 Discord 客户端的问题,而不是机器人本身的问题,但确实发生在用户尚未被获取时。如果您重新启动客户端,查看相关人员发送的消息,然后返回到机器人发送的消息,用户名将显示出来,并且完全有可能仅显示为您的 ID 的内容对某人正确显示别的。如果有的话,这必须由 Discord 自己解决,并且超出了我们作为机器人开发人员的控制范围。
关于javascript - 打印用户在 discord.js 中显示用户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68739092/