javascript - 打印用户在 discord.js 中显示用户 ID
问题描述
我想使用 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 自己解决,并且超出我们作为机器人开发人员的控制范围。
推荐阅读
- css - MS Edge 导航栏切换问题
- arrays - 如何将 &mut ndarray::Array 传递给函数并使用它执行元素运算?
- server-side-rendering - Nuxt:如何在服务器端动态地将内容/脚本添加到头部
- javascript - 根据 onChange 事件值改变 redux 状态
- linux - 具有多种模式的 Grep 命令
- c# - 字典按值分组
- c# - 如何替换字符串中的子字符串,并获取包含替换子字符串的完整字符串?
- python - IndexError:矩阵打印中的列表索引超出范围
- regex - cmake 查找隐藏文件
- python - 如何定义 Django 模型方法?