javascript - 打印用户在 discord.js 中显示用户 ID

标签 javascript caching discord discord.js

我想使用 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 intentServer member intent 也在我的机器人上启用。我该如何解决?

最佳答案

不幸的是,这是不可能的,因为提及显示为 ID 而不是可点击的用户名实际上是 Discord 客户端的问题,而不是机器人本身的问题,但确实发生在用户尚未被获取时。如果您重新启动客户端,查看相关人员发送的消息,然后返回到机器人发送的消息,用户名将显示出来,并且完全有可能仅显示为您的 ID 的内容对某人正确显示别的。如果有的话,这必须由 Discord 自己解决,并且超出了我们作为机器人开发人员的控制范围。

关于javascript - 打印用户在 discord.js 中显示用户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68739092/

相关文章:

javascript - GoogleChrome-全屏问题

asp.net - 缓存 http 处理程序 .ashx 输出

javascript - ServiceWorker无故无法获取外部资源

python - Discord.py ' channel 对象没有属性 create_ytdl_player

python - 限制命令

javascript - 视差 - 帮助使垂直位置从 200px 而不是 0px 开始

javascript - 获取等效于 DateTime.MinValue 的 JavaScript

javascript - 在 chrome 扩展程序中显示警报对话框

ubuntu - 增加 Memcached 最大项目大小

javascript - 我正在尝试使用 ID 向特定 channel 发送消息,但它输出 Cannot read property 'send' of undefined