На каких серверах находится пользователь
Я хотел узнать, как узнать на каких серверах пользователь находится (disnake)? Вот пример (как мне казалось, но такого нет)
@bot.command()
async def tet(ctx):
for guil in bot.guilds:
for member in guil.members:
for guild in member.guilds:
print(guild)
С ошибкой:
25920000
Бот готов к работе
Ignoring exception in command tet:
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/disnake/ext/commands/core.py", line 173, in wrapped
ret = await coro(*args, **kwargs)
File "<string>", line 657, in tet
AttributeError: 'Member' object has no attribute 'guilds'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/disnake/ext/commands/bot_base.py", line 591, in invoke
await ctx.command.invoke(ctx)
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/disnake/ext/commands/core.py", line 914, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/disnake/ext/commands/core.py", line 182, in wrapped
raise CommandInvokeError(exc) from exc
disnake.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Member' object has no attribute 'guilds'
Ответы (1 шт):
Автор решения: q r t s
→ Ссылка
Вы не можете узнать на каких серверах находится пользователь.
Возможно узнать только сервера на которых находится бот и пользователь.
Для этого создаём переменную в которую будут внесены данные:
test = ""
Затем перебираем список гильдий бота:
for guild in bot.guilds:
Далее если этот пользователь находится на сервере где есть бот..
if ctx.author in guild.members:
Он записывает его в переменную:
if test == "":
test = f"{guild}"
else:
test = f"{test}, {guild}"
Отправляем сообщение с результатом и радуемся.
await ctx.send(test)
Полный код:
@bot.command()
async def test(ctx):
test = ""
for guild in bot.guilds:
if ctx.author in guild.members:
if test == "":
test = f"{guild}"
else:
test = f"{test}, {guild}"
await ctx.send(test)