Discord.js:将用户 ID(字符串)转换为用户 ID(Snowflake)

Posted

技术标签:

【中文标题】Discord.js:将用户 ID(字符串)转换为用户 ID(Snowflake)【英文标题】:Discord.js: Converting a user id (string) to user id (Snowflake) 【发布时间】:2020-10-02 22:23:22 【问题描述】:

没有找到有关如何解决此问题的任何线索。

我正在开发一个 Discord 机器人。它的部分功能是存储一些用户记录。每个用户的数据都在一个 JSON 文件中被索引,他们的用户 ID 被用作键。 When I obtain this key, it is of the Snowflake data type,但将其存储在 JSON 文件中会将其转换为字符串。

程序的一部分尝试使用我从 JSON 文件中提取的用户 ID 获取用户,因此它是一个字符串。

let clientUser = client.users.fetch(userID);

但是,我不能这样做,因为 fetch() requires the user ID to be a "Snowflake" data type.

如何将我的用户 ID 从字符串转换为它要求的 Snowflake 数据类型?

或者,有没有办法使用 fetch() 或与字符串数据类型相当的东西?

【问题讨论】:

【参考方案1】:

雪花可以是一个字符串,如您所链接的链接所述,如果这是一个有效的用户 ID,那么它将起作用。问题是 fetch 是一种异步方法,因此您不能只将 clientUser 分配给它,当您这样做时,您正在为它分配一个承诺。

相反,您将不得不使用等待或.then

const clientUser = await client.users.fetch(userID);

client.users.fetch(userID).then(clientUser => console.log(clientUser));

【讨论】:

以上是关于Discord.js:将用户 ID(字符串)转换为用户 ID(Snowflake)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 discord.js 中拆分定义的字符串

Discord.js,通过数组中的 ID 查找用户是不是具有角色

如何从 Discord.js 中的用户名中查找用户 ID?

如何将服务器中每个用户的 id 放入数组中? (Discord.js v12)

如何在 discord.js 中通过 id 查找用户

黑名单用户 ID discord.js [关闭]