member.name для члена в guild.members печатает только имя бота, даже если намерения включены в коде

Я следую руководству RealPython о том, как создать бота Discord, и столкнулся с проблемой, когда мой код печатает только имя бота, но не мой. Я видел решения, в которых вы включаете намерения привилегированного шлюза на портале разработчика и добавляете код discord.Client (intents = intents) в начало вашего кода, и я это сделал, но проблема все еще сохраняется. Я не получаю никаких ошибок или чего-то еще, просто печатается только имя моего бота. пожалуйста, дайте мне знать, если я что-то пропустил или мне нужно решить еще одну проблему. спасибо!

вот мой код:

# bot.py
import os
import discord
from dotenv import load_dotenv

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

load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
GUILD = os.getenv('DISCORD_GUILD')

client = discord.Client()

@client.event
async def on_ready():
    for guild in client.guilds:
        if guild.name == GUILD:
            break
    print(
        f'{client.user} is connected to the following guild:
'
        f'{guild.name}(id: {guild.id})'
    )

    members = '
 - '.join([member.name for member in guild.members])
    print(f'Guild Members:
 - {members}')

client.run(TOKEN)

Всего 1 ответ


У вас есть две строки, в которых вы назначаете discord.Client для client.

client = discord.Client(intents=intents)
# and
client = discord.Client()

Первая строка сделана правильно с намерениями. Однако вторая строка создает новый объект discord.Client без намерений . Удалите одну из этих строк и убедитесь, что в оставленной вами строке включены намерения.


Есть идеи?

10000