discord python: guild.members devuelve solo bot pero no miembros [duplicado]

Oct 06 2020

tratando de hacer un bot de discordia con Python.

en la interfaz de desarrolladores de discord, en mi panel de bots, "Privileged Gateway Intents" (INTENCIÓN DE LOS MIEMBROS DEL SERVIDOR) está marcado.

El bot está en el servidor (gremio) con autorizaciones de administrador.

            for guild in self.discord_client.guilds:
                print(f"guild found : {guild}")
                print(guild.members)
            for member in guild.members:
                print(member)

No entiendo por qué bot regresó solo a él, pero ninguno me encontró a mí ni a mi amigo.

regreso

guild found : Testdev

[<Member id=76277237853886878X name='Dev_Bot' discriminator='6271' bot=True nick=None guild=<Guild id=76114559936167936X name='Testdev' shard_id=None chunked=False member_count=3>>]

número de miembros = 3, pero después

       for member in list(guild.members):
           print(member)

regresar solo

Dev_Bot#6271

Puede usted ayudar ? Gracias

Respuestas

4 theX Oct 18 2020 at 09:10

La única respuesta útil que he encontrado está aquí:

Discord Bot solo puede verse a sí mismo y no a otros usuarios en el gremio

Básicamente, dice que debes configurar el intentspara poder ver a los miembros del gremio.

Entonces, en lugar de solo client = discord.Client(), tendrás que hacer:

...

intents = discord.Intents.all()
client = discord.Client(intents=intents)

...

o

intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)

si solo quieres tener esa intención

3 akiva Oct 06 2020 at 03:48

https://discordpy.readthedocs.io/en/latest/intents.html

O simplemente, instale la versión 1.4.2 de la biblioteca: pip install -U discord.py==1.4.2