#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. Спасибо, я проверю этот метод и отмечу ваш ответ, если он сработает.