#discord #discord.py
#Discord #discord.py
Вопрос:
возникли проблемы с получением моего бота discord списка всех членов единственной гильдии, в которую он добавлен..
async def on_ready(self):
print("logged in as {0}".format(self.user))
guilds = self.guilds
print("guilds: " str(guilds))
guild = self.get_guild(my_guild_id)
print("guild members: " str(guild.members))
Интересно то, что когда я распечатываю саму гильдию, она показывает количество членов 5 (что правильно). Однако при создании экземпляра объекта Guild и доступе к свойству members в качестве участника отображается только сам пользователь бота.
guild members: [<Member id=12345678 name='testapp1_bot' discriminator='0683' bot=True nick=None guild=<Guild id=12345 name="ethandrower's server" shard_id=None chunked=False member_count=5>>]
guilds: [<Guild id=12345 name="ethandrower's server" shard_id=None chunked=False member_count=5>]
Я предполагаю, что это либо мое непонимание архитектуры «гильдий», либо разрешения для бота. Я добавил бота на сервер с полным доступом администратора, поэтому я немного озадачен тем, почему я вижу правильное количество участников, но не сами объекты участников?
Любая помощь будет высоко оценена!
Ответ №1:
Если вы используете последнюю версию discord.py т.е. 1.5.0, вам нужно будет включить намерение участника и применить его к вашему боту.
Как включить намерение участника: https://discordpy.readthedocs.io/en/latest/intents.html#privileged-intents
Подробнее о намерениях: https://discordpy.readthedocs.io/en/latest/intents.html