Как получить пользователя без жесткого идентификатора в функции discord client.users.get - PullRequest
0 голосов
/ 18 мая 2019

Я бы хотел, чтобы мой бот-дискордант отправил пользователю (капитану) сообщение, когда другой пользователь на сервере хочет присоединиться к своей команде.У меня есть DiscordID капитана, хранящийся в моей базе данных SQLite, и я могу получить его.Проблема в том, что когда я передаю эту переменную в качестве аргумента методу client.users.get (), она возвращает неопределенное значение.Я пытался преобразовать DiscordID в строку, но он по-прежнему возвращает неопределенный.Когда я жестко кодирую 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 голосов
/ 19 мая 2019

Идентификаторы Discord должны храниться в виде строки , потому что число слишком велико для Node.js и будет округлено.Отметив Number.MAX_SAFE_INTEGER, вы увидите, что оно меньше 18 цифр и, следовательно, не будет правильно хранить идентификаторы.

Плохо: 189855563893571595
Хорошо: '189855563893571595'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...