@goti

Как на Disnake сделать право на использование команды для определённой роли?

В общем. Я хотел написать своего бота на Disnake, добавил команду: /mute
Для её использования необходима роль, с правами администратор, а я хотел-бы, что-бы эту команду могли использовать пользователи, имеющие определённую роль (на пример Хелпер)

Мут:
import datetime

import disnake
from disnake.ext import commands


class Timeout(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.slash_command(name="mute", description="Блокировка чата пользователя", usage="/help")
    @commands.has_permissions(administrator=True)
#  let adminRole = mess.guild.roles.cache.get("1083677957500960783"):
#  if (!mess.member.roles.cache.has(adminRole)) return "у пользователя отсутствует роль."
    async def timeout(self, interaction, member: disnake.Member, time: str, reason: str):
        time = datetime.datetime.now() + datetime.timedelta(minutes=int(time))
        await member.timeout(reason=reason, until=time)
        cool_time = disnake.utils.format_dt(time, style="R")
        embed = disnake.Embed(title="Наказание", description=f"Выдан **временный мьют** для пользователя {member.mention}!\n Мьют истекает {cool_time}\n Считаете, что наказание выдано __неверно__? Обратитесь к администрации сервера.", color=0x00ff00)
        await interaction.response.send_message(embed=embed) 

    @commands.slash_command(name="unmute", description="Снятие блокировки чата", usage="/help")
    @commands.has_permissions(administrator=True)
    async def untimeout(self, interaction, member: disnake.Member):
        await member.timeout(reason=None, until=None)
        embed = disnake.Embed(title="Снятие наказание", description=f"Снятое наказание: **мьют**\n Снято с: {member.mention} ", color=0x00ff00)
        await interaction.response.send_message(embed=embed)


def setup(bot):
    bot.add_cog(Timeout(bot))
  • Вопрос задан
  • 1002 просмотра
Пригласить эксперта
Ответы на вопрос 1
@astigmatism
@commands.has_any_role(id)
Вместо id поставьте айди роли(ей)
Ролей которые могут использовать команду может быть несколько
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
07 мая 2024, в 18:23
20000 руб./за проект
07 мая 2024, в 18:09
2000 руб./за проект
07 мая 2024, в 17:40
300 руб./за проект