Как cделать чтобы Discord бот выдал роль пользователю при подключении к voice каналу?

Как сделать так чтобы человек присоединялся к воис каналу дискорд, бот выдавал ту или иную роль, а после то как человек выходит из канала роль забралась?

@client.event()

Ответы (1 шт):

Автор решения: Daniil Loban

для голосового канала:

@client.event
async def on_voice_state_update(member, before, after):
    role = get(member.server.roles, name="Speaker")
    is_my_channel = after.channel and after.channel.id == 776564197873287202;
    if after.channel and after.channel!=before.channel and is_my_channel:
       await client.add_roles(member, role)  
    # if before.channel and after.channel!=before.channel and is_my_channel:
    #   await client.remove_roles(member, role)  

для обычного канала (первоначальный ответ, возможно кому-то пригодится):

@client.event
async def on_member_join(member):
    role = get(member.server.roles, name="Admin")
    await client.add_roles(member, role)
→ Ссылка