Пример #1
0
 async def now_(self, ctx):
     channel_check(ctx)
     await ctx.message.delete()
     d = data_read(ctx.guild)
     d['now'] = not d['now']
     data_write(ctx.guild, d)
     await ctx.send(f'Настройка `сейчас играет` изменена на  [ {int(d["now"])} ]  :thumbsup:', delete_after=20)
Пример #2
0
 async def change_gender(self, ctx):
     try:
         channel_check(ctx)
     except ChannelException as error:
         await error.do(ctx)
         return
     user = ctx.message.author
     d = data_read(ctx.guild)
     if d['genders']:
         role1 = discord.utils.get(user.guild.roles, id=d['genders'][0])
         role2 = discord.utils.get(user.guild.roles, id=d['genders'][1])
         if role1 is None or role2 is None:
             await ctx.message.delete()
             await ctx.send(f'Упс! Кажется кто-то из админов сервера удалил роли. Попроси '
                            f'`{ctx.guild.owner.name}` поставить их заново :cowboy:', delete_after=40)
         if role1.name in [r.name for r in user.roles]:
             await user.remove_roles(role1)
             await user.add_roles(role2)
         else:
             await user.remove_roles(role2)
             await user.add_roles(role1)
         await ctx.message.delete()
         await ctx.send(f'{user.mention}, ты изменил свою гендерную роль :sunglasses:', delete_after=3)
     else:
         ctx.send('К сожалению, владелец сервера не назначили роли для гендерного распределения :weary:')
Пример #3
0
 async def server_help_(self, ctx):
     try:
         channel_check(ctx)
     except ChannelException as error:
         await error.do(ctx)
         return
     embed = discord.Embed(
         colour=discord.Colour.from_rgb(r=30, g=144, b=255),
         description=':fox:`.set_roles` - создам закрепленный пост, с помощью которого участники сервера '
                     'смогут сами выбирать себе роли всего по клику на Эмодзи. Для этого содержимое сообщения должно'
                     ' быть такого вида: `.set_roles @<упоминание роли> <любое Эмодзи> \"<Описание>\"`. Описание '
                     'роли по желанию, количество ролей неограничено. *Убедись в настройках сервера что моя роль* '
                     '*расположена выше всех ролей в сообщении, таковы требования Дискорда.*\n'
                     ':male_sign:`.set_genders` - устанавлю связь между половыми ролями и участниками '
                     'сервера. В качестве аргумента передай либо упоминания 2-х ролей при условии что моя роль выше '
                     'их обоих, либо 2 слова, которые запустят процесс создания новых ролей с соответствующими им '
                     'наименованиям. Можешь вообще не передавать ничего и тогда новые роли будут выглядеть так: '
                     '♂ и ♀. *Порядок аргументов всегда такой: сначала для мужской роли, затем для женской*\n'
                     ':shield:`.channels` - определю для себя на каких текстовых каналах я могу вести '
                     'работу, а на каких нет. Для этого передай через пробел список разрешённых каналов (с помощью '
                     '\'#\'), либо не передавай ничего, и тогда список запрещённых для меня каналов станет пустым.\n'
                     ':arrows_counterclockwise:`.edit.notice` - по умолчанию, когда участник сервера покидает '
                     'голосовой канал - я присылаю уведомление о времени его пребывания на данном канале. Эту опцию '
                     'можно менять сколько угодно раз с помощью этой команды.\n'
                     ':arrows_counterclockwise:`.edit.now` - по умолчанию, когда начинает играть новая песня - я '
                     'пишу название этой песни. Эту опцию можно менять сколько угодно раз с помощью этой команды.\n'
                     ':five:`.edit.count` - по умолчанию, после поиска музыки показываются лишь первые 5 совпадений.'
                     ' Ты можешь изменить это количество на любое число от 5 до 10 включительно.'
     )
     embed.set_author(name='Серверные команды',
                      icon_url='https://cdn.discordapp.com/avatars/'
                               '669163733473296395/89d3cf65e539aaba9e6d1669d32b1ea7.webp?size=1024')
     await ctx.send(embed=embed, delete_after=3600)
Пример #4
0
 async def notice_(self, ctx):
     channel_check(ctx)
     await ctx.message.delete()
     d = data_read(ctx.guild)
     d['notice'] = not d['notice']
     data_write(ctx.guild, d)
     await ctx.send(f'Настройка `участник покинул канал` изменена на  [ {int(d["notice"])} ]  :thumbsup:',
                    delete_after=20)
Пример #5
0
 async def count_(self, ctx, *, n: int):
     channel_check(ctx)
     await ctx.message.delete()
     d = data_read(ctx.guild)
     if n < 5 or n > 10:
         raise commands.errors.BadArgument
     d['count'] = n
     data_write(ctx.guild, d)
     await ctx.send(f'Настройка `количество записей` изменена на  [ {n} ]  :thumbsup:', delete_after=20)
Пример #6
0
 async def github_(self, ctx):
     try:
         channel_check(ctx)
     except ChannelException as error:
         await error.do(ctx)
         return
     await ctx.send(
         ':house: мой домик: https://github.com/gitSunic/flex-bot',
         delete_after=40)
     await mcm(ctx)
Пример #7
0
 async def clear_(self, ctx, n='all'):
     try:
         channel_check(ctx)
     except ChannelException as error:
         await error.do(ctx)
         return
     if n != 'all':
         try:
             await ctx.channel.purge(limit=int(n) + 1)
         except ValueError:
             await ctx.send(f'Не удалось распознать число `{n}`')
     else:
         await ctx.channel.purge(limit=100)
Пример #8
0
 async def get_avatar(self, ctx, *members: discord.Member):
     try:
         channel_check(ctx)
     except ChannelException as error:
         await error.do(ctx)
         return
     await ctx.message.delete()
     if not members:
         members = [ctx.message.author]
     for member in members:
         embed = discord.Embed(color=member.color)
         embed.set_image(url=member.avatar_url)
         await ctx.send(embed=embed)
Пример #9
0
 async def random(self, ctx, q):
     try:
         channel_check(ctx)
     except ChannelException as error:
         await error.do(ctx)
         return
     try:
         a, b = map(int, q.split('-'))
         await ctx.send(
             f'{ctx.message.author.mention} твоё случайное '
             f'число от {a} до {b}: **{random.randint(a, b)}**',
             delete_after=40)
     except ValueError:
         await ctx.send(f'Ты неправильно ввел{postix(ctx)} данные :sweat:',
                        delete_after=10)
     except commands.errors.MissingRequiredArgument:
         await ctx.send('Укажи границы :sweat:', delete_after=10)
Пример #10
0
 async def person_help_(self, ctx):
     try:
         channel_check(ctx)
     except ChannelException as error:
         await error.do(ctx)
         return
     await ctx.message.delete()
     embed = discord.Embed(
         colour=discord.Colour.from_rgb(r=30, g=144, b=255),
         description=':cat:`.g`,`.change_gender` - если пол, который я выдала тебе автоматически, тебя не '
                     'устраивает, ты можешь его сам поменять.\n'
                     ':stars:`.ava` - пришлю фотку твоей аватарки, или аватарки любого другого участника сервера, '
                     'главное не забудь отметить его в сообщении'
     )
     embed.set_author(name='Персональные команды',
                      icon_url='https://cdn.discordapp.com/avatars/'
                               '669163733473296395/89d3cf65e539aaba9e6d1669d32b1ea7.webp?size=1024')
     await ctx.send(embed=embed, delete_after=3600)
Пример #11
0
 async def bug_(self, ctx, *, msg: str):
     try:
         channel_check(ctx)
     except ChannelException as error:
         await error.do(ctx)
         return
     if ctx.message.author.id in self.bugs:
         await ctx.send(
             f'Прости `{ctx.message.author.name}` но отправка сообщений такого рода не '
             f'должна быть чаще 1 раза в минуту :clock1:',
             delete_after=10)
     else:
         user = await self.client.fetch_user(me)
         await user.send(
             f'сервер: {ctx.guild.name}\nавтор: {ctx.message.author.mention}\nтекст: {msg}'
         )
         await ctx.send(
             f'`{ctx.message.author.name}` спасибо за помощь в разработке :diving_mask: ',
             delete_after=20)
         await mcm(ctx)
Пример #12
0
 async def extra_help_(self, ctx):
     try:
         channel_check(ctx)
     except ChannelException as error:
         await error.do(ctx)
         return
     await ctx.message.delete()
     embed = discord.Embed(
         colour=discord.Colour.from_rgb(r=30, g=144, b=255),
         description=
         f':broom:`.clear` - удалю последние *n* сообщений на канале, но не более 100 за раз!\n'
         f':beetle:`.bug` - если ты найдешь какие-то значимы ошибки в моей работе, обязательно '
         f'отправь их мне при помощи этой команды.\n'
         f':house:`.git` - мой домик (открытый код)')
     embed.set_author(
         name='Дополнительные команды',
         icon_url='https://cdn.discordapp.com/avatars/'
         '669163733473296395/89d3cf65e539aaba9e6d1669d32b1ea7.webp?size=1024'
     )
     await ctx.send(embed=embed, delete_after=3600)
Пример #13
0
 async def enter_help_(self, ctx):
     try:
         channel_check(ctx)
     except ChannelException as error:
         await error.do(ctx)
         return
     embed = discord.Embed(
         colour=discord.Colour.from_rgb(r=30, g=144, b=255),
         description=
         ':game_die:`.e.r`,`.random` - передай вместе с командой строку в виде '
         '`a-b` и я выберу случайное число от *a* до *b* включительно. '
         '*a и b - целые числа*\n'
         ':arrow_up:`.e.u`,`.upload` - отправь с командой картинку и получи короткую ссылку на нее'
     )
     embed.set_author(
         name='Развлекательные команды',
         icon_url='https://cdn.discordapp.com/avatars/'
         '669163733473296395/89d3cf65e539aaba9e6d1669d32b1ea7.webp?size=1024'
     )
     await ctx.send(embed=embed, delete_after=3600)