#python #discord.py
#python #discord.py
Вопрос:
print(message.guild.member_count) # 7
print(len(message.guild.members)) # 1
for member in message.guild.members:
print(str(member)) # the bot itself
Я пытаюсь получить участников канала Discord, но в нем отображается только сам бот. Раньше это работало, я вообще не менял код, но внезапно этого не происходит. Я дал боту права администратора, не знаю, что не так.
Комментарии:
1. Вы пытаетесь получить всех членов вашего сервера или только один канал?
Ответ №1:
Вам нужно сделать 2 вещи, которые используют класс данных Intents, и ваш код будет работать так, как ожидалось.
- Обновите портал разработчика, чтобы включить действия участника для вашего бота.
- Добавьте следующий код в свой бот:
intents = discord.Intents.default()
intents.members = True
bot = Bot(command_prefix=list(PREFIX), intents=intents)
Пожалуйста, посмотрите документацию Where’d my members go.
Ответ №2:
Если вы пытаетесь получить количество и имена всех членов вашей гильдии, используйте guild .fetch_members() .
@client.event
async def on_ready():
guild = client.get_guild(123456789)
member_count = guild.member_count
print(f"Total member count: {member_count}")
async for member in guild.fetch_members(limit=150):
print(member.name)
Также убедитесь, что вы настроили свои намерения так, как @DaveStSomeWhere сказал выше.