@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))
  • Вопрос задан
  • 1375 просмотров
Пригласить эксперта
Ответы на вопрос 1
@astigmatism
@commands.has_any_role(id)
Вместо id поставьте айди роли(ей)
Ролей которые могут использовать команду может быть несколько
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы