У меня есть достаточно хороший бот, с достаточно большим перечнем команд. В этот раз я хочу настроить получение информации о только текущем сервере(объясню поподробней потом).
Я смог это сделать сам, но столкнулся с проблемой, что это была статистика за все сервера на котором находился бот. Мне нужно чтобы была команда отвечающая только за текущий сервер и не задевала другие. Я попробовал это воплотить в реальность, оно как я уже понял безуспешно.
Код:
async def server_info(ctx):
members_count = 0
online = 0
offline = 0
idle = 0
dnd = 0
for member in ctx.guild:
if member.status == discord.Status.online:
online += 1
elif member.status == discord.Status.offline:
offline += 1
elif member.status == discord.Status.idle:
idle += 1
elif member.status == discord.Status.dnd:
dnd += 1
members_count += 1
Ошибка:
Ignoring exception in command server_info:
Traceback (most recent call last):
File "C:\Users\User\AppData\Roaming\Python\Python39\site-packages\discord\ext\commands\core.py", line 85, in wrapped
ret = await coro(*args, **kwargs)
File "C:\Users\User\Discord\bots\database_test.py", line 156, in server_info
for member in ctx.guild:
TypeError: 'Guild' object is not iterable
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\User\AppData\Roaming\Python\Python39\site-packages\discord\ext\commands\bot.py", line 939, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\User\AppData\Roaming\Python\Python39\site-packages\discord\ext\commands\core.py", line 863, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "C:\Users\User\AppData\Roaming\Python\Python39\site-packages\discord\ext\commands\core.py", line 94, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: 'Guild' object is not iterable
По логике мне нужно было найти вместо ctx.guild, другой, который соответствовал моим требованиям. Но в документации и на просторах интернета я так и не смог найти решения именно к моему случаю. Я буду очень долго его совершенствовать, и ваша помощь будет очень кстати.