В общем. Я хотел написать своего бота на 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))