Discord.Net GetUser по идентификатору возвращает null

Я писал бота для Discord с помощью Discord.net. У меня есть IGuild, где мне нужно получить пользователя по идентификатору, поэтому я использую:

var user = await guild.GetUserAsync(id, CacheMode.AllowDownload);

Он должен получить пользователя, если он кэширован, а если нет, загрузите его. Но пользователь каждый раз равен нулю.

Я знаю, что идентификатор правильный. Есть ли правильный способ сделать это?

На сервере ›1 тыс. Участников, поэтому их загрузка через DownloadUsersAsync занимает слишком много времени.


person BrainyXS    schedule 08.11.2020    source источник
comment
Вы можете проверить мой ответ здесь: stackoverflow.com/questions/64604209/ в основном потому, что intent setting   -  person Cuppyzh    schedule 09.11.2020


Ответы (1)


Опоздал на вечеринку.

Ваша проблема является прямым следствием новых намерений шлюза, введенных Discord в их API.

Не волнуйтесь, это легко исправить. Просто перейдите на страницу https://discord.com/developers/applications, выберите свое приложение, затем перейдите к раздел ботов. Затем вы ищете это. Просто включите намерение участников сервера.

Если все пойдет по плану, это должно прозрачно решить вашу проблему без необходимости повторной компиляции. Если не считать этого, не стесняйтесь спрашивать еще раз.

person DJ Daemonix    schedule 17.12.2020