Получить присутствие пользователя - библиотека Discord JDA

Я пытаюсь написать бота для разногласий с помощью JDA, и хотя я могу довольно легко получить присутствие бота, я не могу получить присутствие выбранного пользователя. Примером использования этого может быть пользователь, вводящий команду типа !game, а затем бот отправляет сообщение, сообщающее пользователю, в какую игру он играет. Насколько я знаю, бот не может получить игровую активность пользователя без получения присутствия пользователя, и я не вижу способа сделать это. Если я пропустил это в документации, пожалуйста, дайте ссылку на метод/класс.


person Mike    schedule 23.02.2021    source источник


Ответы (1)


После кучи копаний и чтения документации я пришел к решению. Невозможно получить присутствие, как я думал, но, поскольку моей первоначальной целью было получить игровую активность, это решение работает. Во-первых, бот должен иметь разрешение на присутствие в гильдии, предоставленное через портал разработчика. Затем нам нужно включить строку jdaBuilder.enableIntents(GatewayIntent.GUILD_PRESENCES);, прежде чем мы вызовем метод сборки в нашем основном методе. Наконец, чтобы получить действия участников, нам нужно включить jdaBuilder.enableCache(CacheFlag.ACTIVITY);. Это позволяет нам использовать метод member.getActivities(). Вообще говоря, для получения данных, связанных с конкретными пользователями, необходимо включить присутствие гильдии.

person Mike    schedule 24.02.2021