Бот не может замутить пользователя

    import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='!')

@bot.command(pass_context = True)
async def mute(ctx, *, reason=None):
    channel = ctx.author.voice.channel
    users = channel.members
    for user in users:
        await user.edit(reason=reason, mute=True)

@bot.command(pass_context = True)
async def unmute(ctx, *, reason=None):
    channel = ctx.author.voice.channel
    users = channel.members
    for user in users:
        await user.edit(reason=reason, mute=False)


bot.run(TOKEN)

Этот бот видит имя только одного человека из канал и не может никого замутить


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

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

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

@bot.command()
async def mute(ctx, member: discord.Member, *, reason=None):
    channel = ctx.author.voice.channel
    await channel.set_permissions(member, mute = True)
→ Ссылка
Автор решения: Роман Сиджах

Скорее всего у вас не включены намерения шлюза. Чтобы включить их, сделайте следующее: Зайдите на портал разработчика, откройте ваше приложения, на боковой панели зайдите в Bot, там пункт Priveleged Gateway Intents, перетяните оба переключателя пониже в состояние ВКЛ(это Member Intents и Presence Intents), сохраните изменения. Далее, перейдите к коду бота, и замените bot = commands.Bot(command_prefix='!') на bot = commands.Bot(command_prefix='!', intents=discord.Intents.all)

→ Ссылка