如何在不和谐的client.users.get函数中检索没有硬编码ID的用户

时间:2019-05-18 17:49:54

标签: sqlite discord.js

当服务器上的另一个用户想要加入他们的团队时,我希望我的不和谐机器人向用户(队长)发送一条消息。 我在SQLite数据库中存储了队长的DiscordID,可以对其进行检索。问题是,当我将此变量作为参数传递给client.users.get()方法时,它返回未定义的。我尝试将DiscordID转换为字符串,但是它仍然返回undefined。当我对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

1 个答案:

答案 0 :(得分:0)

Discord ID必须存储为字符串,因为该数字对于Node.js太大,会四舍五入。通过检查Number.MAX_SAFE_INTEGER,您会看到它少于18位数字,因此不能正确存储ID。

错误:189855563893571595
好:'189855563893571595'