Как создать команду, которая показывает, на каких серверах находится участник (discord.py)

#discord.py

#discord.py

Вопрос:

Я перепробовал много способов, но это не сработало, поэтому, если у кого-то есть какие-либо идеи о создании команды, пожалуйста, поделитесь со мной

вот мой код

 async def serverlist(ctx):  mS = ', '.join([str(server) for server in member.guilds])  s = len(mebmer.guilds)  print("Server list: "   mS)  if s lt; 10:  embed = discord.Embed(title="This user is currently in this server"   str(mS)   " servers:", description="```jsonn"   mS   "```", colour=0xFFFFF)  return await ctx.send(embed=embed)  

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

1. Какую ошибку вы получаете?

2. моя ошибка-ошибка атрибута объект-член не имеет атрибутов гильдий

3. Вы ссылаетесь member.client на что — нибудь в своем коде?

4. да .присоединяйтесь([str(сервер) для сервера в member.гильдии])

Ответ №1:

Во — первых, добавьте member в качестве аргумента команды: async def serverlist(ctx, member: discord.Member):

Вы можете получить guilds список, используя следующий код:

 guilds = [guild.name for guild in bot.guilds if guild.get_member(member.id) is not None]  

Вызовите команду, введя что-то вроде [yourprefix]serverlist @Member#1234 в чате.

 @bot.command() async def serverlist(ctx, member: discord.Member):  guilds = [guild.name for guild in bot.guilds if guild.get_member(member.id) is not None and guild != ctx.guild]  embed = discord.Embed(title=f"This user is currently in this server and in {len(guilds)} servers", description='n'.join(guilds), color=0xFFFFF)  await ctx.send(embed=embed)  

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

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

1. получено сообщение об ошибке, вызывающее ошибку CommandInvokeError(exc) из exc discord.ext.команды.ошибки. CommandInvokeError: Команда вызвала исключение: Ошибка типа: может только объединить str (не «список») в str

2. Используйте " ".join(guilds) вместо guilds .

3. я попробую, одну секунду

4. я в замешательстве, лол, ты можешь объяснить?

5. Работает ли это на вас?