Как я могу создать список участников на сервере Discord с помощью discord.py ?

#python-3.x #discord #discord.py #discord.py-rewrite

#python-3.x #Discord #discord.py

Вопрос:

Я пытаюсь сгенерировать список всех участников на сервере discord с помощью discord.py . Вот мой код:

 import discord
from discord.ext import commands


class Events(commands.Cog):
    def __init__(self, client):
        self.client = client

    def get_member_names(self):
        for guild in self.client.guilds:
            for member in guild.members:
                yield member.name

    @commands.Cog.listener()
    async def on_ready(self):
        await self.client.change_presence(activity=discord.Activity(type=discord.ActivityType.watching,
                                                                    name="the Chat."))
        print('Bot has logged in as {0.user.name}'.format(self.client))

        people = set(self.get_member_names())
        print(people)

def setup(client):
    client.add_cog(Events(client))

  

Проблема в том, что я получаю только имя бота на сервере, но не любого из пользователей, как это исправить?

Комментарии:

1. Похоже, в коде нет ошибки. Вы уверены, что ваш бот состоит в гильдии?

2. Да, я уверен prnt.sc/uz7odg

3. я уверен, что функция get_members_name должна быть async def , а не просто def

4. get_member_names не используется await или async for поэтому его создание async def не требуется

Ответ №1:

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

Комментарии:

1. Спасибо, я проверю этот метод и отмечу ваш ответ, если он сработает.