Как упомянуть человека, который зашел в конкретный канал
Мой бот должен создавать каналы и получать информацию о пользователях, которые зашли в них. Теперь порядок действий пользователя: он заходит в конкретный, затем бот создает ему канал и перемещает его туда. Потом юзер должен написать команду !invite, и бот выдает ему список пользователей в этом канале (неважно один ли он там или уже с кем-то). Этот список бот будет редактировать, когда кто-то зашел, и удалять сообщение со списком, когда все выйдут (сам канал бот тоже удалит).
Проблема в том, что мне нужно получать ID нового юзера, когда он заходит в created_channel. Какие-то идеи?
@client.command(name='invite')
async def invite(ctx: commands.context):
poster = discord.Embed(colour = 0xFF5500)
poster.add_field(name = ctx.message.content[7:],
value = f'''{new_connected1.mention}
{new_connected2.mention}
{new_connected3.mention}
{new_connected4.mention}
{new_connected5.mention}'''
)
await ctx.send(embed = poster)
@client.event
async def on_voice_state_update( member, before, after ):
if after.channel.id == 1019214989829079060: #Канал, в который нужно зайти, чтобы бот другой канал
for guild in client.guilds:
category_contains_created_channel = discord.utils.get( guild.categories, id = 1019215017150787604) #Категория, в которой создается канал
created_channel = await guild.create_voice_channel(name = f"{member.display_name}'s", category = category_contains_created_channel, user_limit = 5) #Само создание канала
await created_channel.set_permissions(member, connect = True, mute_members = True, move_members = True) #Выдача прав
await member.move_to(created_channel) #Перенос пользователя в новый канал
def check(x, y, z):
return len(created_channel.members) == 0 #Проверка на наличие людей в канале
await client.wait_for('voice_state_update', check = check)
await created_channel.delete() #Удаляем канал, если никого нет в нем