Список юзеров на сервере

Всем привет! Решил сделать генератор таблицы юзеров на сервере. Начал с обычного получения ников юзеров.

@client.command()

async def members(ctx):
    guild = ctx.guild
    for member in guild.member:
        print(member.nick)

Когда запускаю бота и ввожу комманду на сервере в консоли выводится ник только бота, затем после него следует None. Так вот, мне необходима помощь - как сделать, чтобы выводился полный список юзеров на сервере?


Ответы (1 шт):

Автор решения: denisnumb

Примерно месяц назад шлюз дискорда был обновлен и теперь для того чтобы работать с объектами пользователей нужно выдавать намерения (intents). У вас проблема как раз таки в том, что вы не выдали боту необходимые намерения. Чтобы их выдать, вам нужно при инициализации бота, помимо префикса указать также намерения.

Выдаем боту намерения при объявлении:

client = commands.Bot(command_prefix='/', intents = discord.Intents.all())

Если проблема осталась, то попробуйте включить два пункта на странице вашего бота. Для этого зайдите в раздел приложений и выберите вашего бота. Затем, слева, на вкладке "Bot"

Бот

Включите параметры PRESENCE INTENT и SERVER MEMBERS INTENT

введите сюда описание изображения

→ Ссылка