Автомут в голосовом канале дискорда

Хочу произвести выдачу мута всем сидящим со мной в войсе. Что тут не так? Подскажите, пожалуйста. И как правильнее будет сделать?

@Bot.command()
async def all_mute(ctx):
    a = []
    channel = ctx.author.voice.channel
    for member in channel.members:
        await member.edit(mute = True)
    await ctx.send("Исполнено")

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

Автор решения: xZartsust

Попробуйте вот такой код:

@Bot.command()
async def all_mute(ctx):
    channel = ctx.author.voice.channel
    for member in channel.members:
        await channel.set_permissions(member, speak = False)
    await ctx.send("Исполнено")
→ Ссылка
Автор решения: LeonidM

Дело заключается в том, что channel.members всегда возвращает пустой список (новое обновление на серверах дискорда). Вместо этого надо делать так:

async for member in channel.fetch_members():
    await channel.set_permissions(member, speak = False)

И, если что, когда человеку убираются права на использование микрофона, то ему надо перезайти, иначе он сможет дальше говорить и его будет слышно.

→ Ссылка