Делаю бота для дискорда и решил сделать статистику сервера, чтобы показывало онлайн и количество участников и у меня почему-то бот "пробегается" не по всем участникам, а только по себе (то есть, он считывает свой статус (то что он онлайн) и показывает в кол-ве участников только себя). Вот код:
@client.command()
async def server(ctx):
await ctx.send('идёт сбор информации... Пожалуйста подождите...')
online = 0
idle = 0
dnd = 0
offline = 0
server_name = ctx.guild.name
server_owner = ctx.guild.owner
server_all = 0
server_members = 0
server_bots = 0
for member in ctx.guild.members:
server_all += 1
print(f'на сервере {server_all} участников')
# if member == discord.Bot:
# server_bots += 1
# print(f'На сервере {server_bots} ботов')
# else:
# server_members += 1
# print(f'на сервере {server_members} людей')
if member.status == discord.Status.online:
online += 1
print(f'онлайн: {online}')
if member.status == discord.Status.idle:
idle += 1
print(f'неактивен: {idle}')
if member.status == discord.Status.dnd:
dnd += 1
print(f'Не беспокоить: {dnd}')
if member.status == discord.Status.offline:
offline += 1
print(f'Оффлайн: {offline}')
embed=discord.Embed(title="Статистика сервера ", description=f"**Участники:**\nВсего: {server_all}\n \nОнлайн: {online}\nНеактивен: {idle}\nНе беспокоить: {dnd}", color=0x0000ff)
await ctx.send(embed=embed)
Что не так и как исправить ошибку?
Вот скриншот результата: