如何在 discord client.users.get 函数中检索没有硬编码 ID 的用户
How to retrieve user without hardcoding ID in discord client.users.get function
当服务器上的另一个用户想要加入他们的团队时,我希望我的 discord 机器人向用户(队长)发送一条消息。
我将船长的 DiscordID 存储在我的 SQLite 数据库中,并且可以检索它。问题是,当我将此变量作为参数传递给 client.users.get() 方法时,它 returns 未定义。我试过将 DiscordID 转换为字符串,但它仍然 returns 未定义。当我对 DiscordID 进行硬编码时,它工作正常。
我对 discord.js 不是很有经验,所以我希望这只是一个可以快速解决的小问题。或者这是故意不可能避免机器人在不直接接收用户消息的情况下向用户发送消息?
const client = new Discord.Client();
client.users.get('12345'); <-- This returns the user object
const capt = 12345;
client.users.get(capt); <-- returns undefined
const capt = 12345;
const captString = capt.toString();
client.users.get(captString); <-- returns undefined
Discord ID 需要存储为字符串,因为数字对于 Node.js 来说太大了并且会四舍五入。通过检查 Number.MAX_SAFE_INTEGER
,您会发现它少于 18 位数字,因此无法正确存储 ID。
不好:189855563893571595
好:'189855563893571595'
当服务器上的另一个用户想要加入他们的团队时,我希望我的 discord 机器人向用户(队长)发送一条消息。 我将船长的 DiscordID 存储在我的 SQLite 数据库中,并且可以检索它。问题是,当我将此变量作为参数传递给 client.users.get() 方法时,它 returns 未定义。我试过将 DiscordID 转换为字符串,但它仍然 returns 未定义。当我对 DiscordID 进行硬编码时,它工作正常。
我对 discord.js 不是很有经验,所以我希望这只是一个可以快速解决的小问题。或者这是故意不可能避免机器人在不直接接收用户消息的情况下向用户发送消息?
const client = new Discord.Client();
client.users.get('12345'); <-- This returns the user object
const capt = 12345;
client.users.get(capt); <-- returns undefined
const capt = 12345;
const captString = capt.toString();
client.users.get(captString); <-- returns undefined
Discord ID 需要存储为字符串,因为数字对于 Node.js 来说太大了并且会四舍五入。通过检查 Number.MAX_SAFE_INTEGER
,您会发现它少于 18 位数字,因此无法正确存储 ID。
不好:189855563893571595
好:'189855563893571595'