Disnake | Не работает команда mute

Рейтинг: 0Ответов: 1Опубликовано: 30.06.2023

Не работает команда mute. При использовании команды на пользователя он все равно может писать.

@bot.event #on server join
async def on_guild_join(guild):
    role_name = "whMuted" 
    role = await guild.create_role(name=role_name)
    role = disnake.utils.get(ctx.guild.roles, name="whMuted")
    role.permissions.update(send_messages=False, view_channel = True)

Как я выяснил проблема с разрешениями так как роль выдаётся без проблем. Код ошибок не выдает.

@bot.command() #mute
async def mute(ctx, member: disnake.Member):
    if ctx.author.guild_permissions.mute_members:
        mute_role = disnake.utils.get(ctx.guild.roles, name="whMuted")
        await member.add_roles(mute_role)
        await ctx.send(f"{member.mention} был замьючен!") 
    else:
        await ctx.send("У вас нет прав!")

Ответы

▲ 0

скорее всего проблема связана с правами ролей на сервере попробуйте:

  1. Проверить, стоит ли роль мута выше чем самая высокая роль участника
  2. Нет ли прав на отправку сообщений у роли @everyone как в списке ролей так и в настройках канала(если есть, то поставить на нейтрал) (лучше вообще для роли @everyone в настройках канала всё на нейтрал(если вы используете роль участника))
  3. Если вы всё же используете роль участника, то отправку сообщений в настройках канала так же поставьте на нейтрал

Вроде всё, если ошибка в настройках сервера, то это должно помочь