当服务器上的另一个用户想加入他们的团队时,我希望我的discord机器人发送一条消息给一个用户(队长)。我在SQLite数据库中存储了队长的不一致信息,并且可以检索它。问题是,当我将这个变量作为参数传递给client.users.get()方法时,它返回的是未定义的。我已经尝试将不一致转换为字符串,但它仍然返回未定义。当我硬编码的不和谐,它工作得很好。
我对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'