Xpeawey

Discord.py Mute + time

Aug 16th, 2021 (edited)
3,792
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 13.00 KB | None | 0 0
  1.  
  2. @client.command(aliases = ['мьют', 'мут'])
  3. @commands.has_permissions(manage_messages = True)
  4. async def mute(ctx, member: discord.Member = None, amout: str = None, *, reason = None):
  5.     times_start = datetime.datetime.today()
  6.     emb_user = discord.Embed(title = '**Уведомление - Mute**', color = Red)
  7.     emb_user.add_field(name = '**Выдал:**', value = ctx.author.mention, inline = False)
  8.     emb_user.add_field(name = '**Причина:**', value = reason, inline = False)
  9.     emb_user.add_field(name = '**Длительность:**', value = amout, inline = False)
  10.     emb_user.add_field(name = '**Сервер:**', value = ctx.guild.name, inline = False)
  11.     emb_user.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  12.  
  13.     emb_user_stop = discord.Embed(title = '**Уведомление - Unmute**', color = Red)
  14.     emb_user_stop.add_field(name = '**Снял:**', value = ctx.author.mention, inline = False)
  15.     emb_user_stop.add_field(name = '**Сервер:**', value = ctx.guild.name, inline = False)
  16.     emb_user_stop.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  17.     mute_role = discord.utils.get(ctx.message.guild.roles, id = ID роли)
  18.  
  19.     if member is None:
  20.         emb = discord.Embed(title = '[ERROR] Mute', description = f'{ctx.author.mention}, Укажите пользователя!', color = Red)
  21.         emb.add_field(name = 'Пример:', value = f'{ctx.prefix}мьют [@участник] <время(с, м, ч, д)> [причина]', inline = False)
  22.         emb.add_field(name = 'Пример 1:', value = f'{ctx.prefix}мьют @Xpeawey 1ч пример')
  23.         emb.add_field(name = 'Время:', value = f'с - секунды\nм - минуты\nч - часы\nд - дни')
  24.  
  25.         await ctx.send(embed = emb)
  26.     else:
  27.         end_time = amout[-1:]
  28.         time = int(amout[:-1])
  29.         if time <= 0:
  30.             emb = discord.Embed(title = '[ERROR] Mute', description = f'{ctx.author.mention}, Время не может быть меньше 1!', color = Red)
  31.             emb.add_field(name = 'Пример:', value = f'{ctx.prefix}мьют [@участник] <время> [причина]', inline = False)
  32.             emb.add_field(name = 'Пример 1:', value = f'{ctx.prefix}мьют @Xpeawey 1ч пример')
  33.             emb.add_field(name = 'Время:', value = f'с - секунды\nм - минуты\nч - часы\nд - дни')
  34.  
  35.             await ctx.send(embed = emb)
  36.         else:
  37.             if end_time == 'с':
  38.                 if reason is None:
  39.                     emb = discord.Embed(title = f'**System - Mute**', color = Red)
  40.                     emb.add_field(name = 'Выдал:', value = ctx.author.mention, inline = False)
  41.                     emb.add_field(name = 'Нарушитель:', value = member.mention, inline = False)
  42.                     emb.add_field(name = 'ID нарушителя:', value = member.id, inline = False)
  43.                     emb.add_field(name = 'Причина:', value = 'Не указано', inline = False)
  44.                     emb.add_field(name = 'Длительность:', value = '{} секунд'.format(time))
  45.                     emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  46.                     await member.add_roles(mute_role)
  47.                     await ctx.send(embed = emb)
  48.                     await member.send(embed = emb_user)
  49.                     await asyncio.sleep(time)
  50.                     await member.remove_roles(mute_role)
  51.                     await member.send(embed = emb_user_stop)
  52.                 else:
  53.                     emb = discord.Embed(title = f'**System - Mute**', color = Red)
  54.                     emb.add_field(name = 'Выдал:', value = ctx.author.mention, inline = False)
  55.                     emb.add_field(name = 'Нарушитель:', value = member.mention, inline = False)
  56.                     emb.add_field(name = 'ID нарушителя:', value = member.id, inline = False)
  57.                     emb.add_field(name = 'Причина:', value = reason, inline = False)
  58.                     emb.add_field(name = 'Длительность:', value = '{} секунд'.format(time))
  59.                     emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  60.                     await member.add_roles(mute_role)
  61.                     await ctx.send(embed = emb)
  62.                     await member.send(embed = emb_user)
  63.                     await asyncio.sleep(time)
  64.                     await member.remove_roles(mute_role)
  65.                     await member.send(embed = emb_user_stop)
  66.             elif end_time == 'м':
  67.                 if reason is None:
  68.                     emb = discord.Embed(title = f'**System - Mute**', color = Red)
  69.                     emb.add_field(name = 'Выдал:', value = ctx.author.mention, inline = False)
  70.                     emb.add_field(name = 'Нарушитель:', value = member.mention, inline = False)
  71.                     emb.add_field(name = 'ID нарушителя:', value = member.id, inline = False)
  72.                     emb.add_field(name = 'Причина:', value = 'Не указано', inline = False)
  73.                     emb.add_field(name = 'Длительность:', value = '{} минут'.format(time))
  74.                     emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  75.                     await member.add_roles(mute_role)
  76.                     await ctx.send(embed = emb)
  77.                     await member.send(embed = emb_user)
  78.                     await asyncio.sleep(time *60)
  79.                     await member.remove_roles(mute_role)
  80.                     await member.send(embed = emb_user_stop)
  81.                 else:
  82.                     emb = discord.Embed(title = f'**System - Mute**', color = Red)
  83.                     emb.add_field(name = 'Выдал:', value = ctx.author.mention, inline = False)
  84.                     emb.add_field(name = 'Нарушитель:', value = member.mention, inline = False)
  85.                     emb.add_field(name = 'ID нарушителя:', value = member.id, inline = False)
  86.                     emb.add_field(name = 'Причина:', value = reason, inline = False)
  87.                     emb.add_field(name = 'Длительность:', value = '{} минут'.format(time))
  88.                     emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  89.                     await member.add_roles(mute_role)
  90.                     await ctx.send(embed = emb)
  91.                     await member.send(embed = emb_user)
  92.                     await asyncio.sleep(time *60)
  93.                     await member.remove_roles(mute_role)
  94.                     await member.send(embed = emb_user_stop)
  95.             elif end_time == 'ч':
  96.                 if reason is None:
  97.                     if time == '1':
  98.  
  99.                         emb = discord.Embed(title = f'**System - Mute**', color = Red)
  100.                         emb.add_field(name = 'Выдал:', value = ctx.author.mention, inline = False)
  101.                         emb.add_field(name = 'Нарушитель:', value = member.mention, inline = False)
  102.                         emb.add_field(name = 'ID нарушителя:', value = member.id, inline = False)
  103.                         emb.add_field(name = 'Причина:', value = 'Не указано', inline = False)
  104.                         emb.add_field(name = 'Длительность:', value = '{} час'.format(time))
  105.                         emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  106.                         await member.add_roles(mute_role)
  107.                         await ctx.send(embed = emb)
  108.                         await member.send(embed = emb_user)
  109.                         await asyncio.sleep(time *60 *60)
  110.                         await member.remove_roles(mute_role)
  111.                         await member.send(embed = emb_user_stop)
  112.                     elif time == '4' or time == '3' or time == '2':
  113.                         emb = discord.Embed(title = f'**System - Mute**', color = Red)
  114.                         emb.add_field(name = '**Выдал:**', value = ctx.author.mention, inline = False)
  115.                         emb.add_field(name = '**Нарушитель:**', value = member.mention, inline = False)
  116.                         emb.add_field(name = '**ID нарушителя:**', value = member.id, inline = False)
  117.                         emb.add_field(name = '**Причина:**', value = 'Не указано', inline = False)
  118.                         emb.add_field(name = '**Длительность:**', value = '{} часов'.format(time))
  119.                         emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  120.                         await member.add_roles(mute_role)
  121.                         await ctx.send(embed = emb)
  122.                         await member.send(embed = emb_user)
  123.                         await asyncio.sleep(time *60 *60)
  124.                         await member.remove_roles(mute_role)
  125.                         await member.send(embed = emb_user_stop)
  126.                     elif time >= '5':
  127.                         emb = discord.Embed(title = f'**System - Mute**', color = Red)
  128.                         emb.add_field(name = '**Выдал:', value = ctx.author.mention, inline = False)
  129.                         emb.add_field(name = '**Нарушитель:', value = member.mention, inline = False)
  130.                         emb.add_field(name = '**ID нарушителя:', value = member.id, inline = False)
  131.                         emb.add_field(name = '**Причина:', value = 'Не указано', inline = False)
  132.                         emb.add_field(name = '**Длительность:', value = '{} часов'.format(time))
  133.                         emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  134.                         await member.add_roles(mute_role)
  135.                         await ctx.send(embed = emb)
  136.                         await member.send(embed = emb_user)
  137.                         await asyncio.sleep(time *60 *60)
  138.                         await member.remove_roles(mute_role)
  139.                         await member.send(embed = emb_user_stop)
  140.                 else:
  141.                     if time == '1':
  142.                         emb = discord.Embed(title = f'**System - Mute**', color = Red)
  143.                         emb.add_field(name = '**Выдал:**', value = ctx.author.mention, inline = False)
  144.                         emb.add_field(name = '**Нарушитель:**', value = member.mention, inline = False)
  145.                         emb.add_field(name = '**ID нарушителя:**', value = member.id, inline = False)
  146.                         emb.add_field(name = '**Причина:**', value = reason, inline = False)
  147.                         emb.add_field(name = '**Длительность:**', value = '{} час'.format(time))
  148.                         emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  149.                         await member.add_roles(mute_role)
  150.                         await ctx.send(embed = emb)
  151.                         await member.send(embed = emb_user)
  152.                         await asyncio.sleep(time *60 *60)
  153.                         await member.remove_roles(mute_role)
  154.                         await member.send(embed = emb_user_stop)
  155.                     elif time == '4' or time == '3' or time == '2':
  156.                         emb = discord.Embed(title = f'**System - Mute**', color = Red)
  157.                         emb.add_field(name = '**Выдал:**', value = ctx.author.mention, inline = False)
  158.                         emb.add_field(name = '**Нарушитель:**', value = member.mention, inline = False)
  159.                         emb.add_field(name = '**ID нарушителя:**', value = member.id, inline = False)
  160.                         emb.add_field(name = '**Причина:**', value = reason, inline = False)
  161.                         emb.add_field(name = '**Длительность:**', value = '{} часа'.format(time))
  162.                         emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  163.                         await member.add_roles(mute_role)
  164.                         await ctx.send(embed = emb)
  165.                         await member.send(embed = emb_user)
  166.                         await asyncio.sleep(time *60 *60)
  167.                         await member.remove_roles(mute_role)
  168.                         await member.send(embed = emb_user_stop)
  169.                     elif time >= '5':
  170.                         emb = discord.Embed(title = f'**System - Mute**', color = Red)
  171.                         emb.add_field(name = '**Выдал:**', value = ctx.author.mention, inline = False)
  172.                         emb.add_field(name = '**Нарушитель:**', value = member.mention, inline = False)
  173.                         emb.add_field(name = '**ID нарушителя:**', value = member.id, inline = False)
  174.                         emb.add_field(name = '**Причина:**', value = reason, inline = False)
  175.                         emb.add_field(name = '**Длительность:**', value = '{} часов'.format(time))
  176.                         emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  177.  
  178.                         await member.add_roles(mute_role)
  179.                         await ctx.send(embed = emb)
  180.                         await member.send(embed = emb_user)
  181.                         await asyncio.sleep(time *60 *60)
  182.                         await member.remove_roles(mute_role)
  183.                         await member.send(embed = emb_user_stop)
  184.             elif time == 'д':
  185.                 if reason is None:
  186.                     emb = discord.Embed(title = f'**System - Mute**', color = Red)
  187.                     emb.add_field(name = '**Выдал:**', value = ctx.author.mention, inline = False)
  188.                     emb.add_field(name = '**Нарушитель:**', value = member.mention, inline = False)
  189.                     emb.add_field(name = '**ID нарушителя:**', value = member.id, inline = False)
  190.                     emb.add_field(name = '**Причина:**', value = 'Не указано', inline = False)
  191.                     emb.add_field(name = '**Длительность:**', value = '{} день(ей)'.format(time))
  192.                     emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  193.  
  194.                     await member.send(embed = emb_user)
  195.                     await member.add_roles(mute_role)
  196.                     await ctx.send(embed = emb)
  197.                     await member.send(embed = emb_user)
  198.                     await asyncio.sleep(time *60 *60 *24)
  199.                     await member.remove_roles(mute_role)
  200.                     await member.send(embed = emb_user_stop)
  201.                 else:
  202.                     emb = discord.Embed(title = f'**System - Mute**', color = Red)
  203.                     emb.add_field(name = '**Выдал:**', value = ctx.author.mention, inline = False)
  204.                     emb.add_field(name = '**Нарушитель:**', value = member.mention, inline = False)
  205.                     emb.add_field(name = '**ID нарушителя:**', value = member.id, inline = False)
  206.                     emb.add_field(name = '**Причина:**', value = reason, inline = False)
  207.                     emb.add_field(name = '**Длительность:**', value = '{} день(ей)'.format(time), inline = False)
  208.                     emb.set_footer(text = f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
  209.  
  210.                     await member.add_roles(mute_role)
  211.                     await ctx.send(embed = emb)
  212.                     await member.send(embed = emb_user)
  213.                     await asyncio.sleep(time *60 *60 *24)
  214.                     await member.remove_roles(mute_role)
  215.                     await member.send(embed = emb_user_stop)
Comments
Add Comment
Please, Sign In to add comment