Esempio n. 1
0
 async def unloadextension(self, ctx, Cog):
     try:
         self.bot.unload_extension(f"Cogs.{Cog}")
         await ctx.message.add_reaction(agree_emoji())
     except Exception as error:
         await ctx.message.add_reaction(disagree_emoji())
         await ctx.send(f"Ошибка\n{error}")
Esempio n. 2
0
 async def channelslowdown(self, ctx, member: discord.TextChannel, interval, unmute_in='0'):
     if await db_load_req(
             f"SELECT COUNT(*) as count FROM mutechannel WHERE id = {member.id} AND guild_id = {ctx.guild.id}") == 0:
         membervalues = (member.id, str(member), False, datetime.now(), int(interval), int(unmute_in), ctx.guild.id,
                         str(ctx.guild.id) + str(member.id))
         cur = data.cursor()
         cur.execute("INSERT INTO mutechannel VALUES(?, ?, ?, ?, ?, ?, ?, ?);", membervalues)
         data.commit()
         if unmute_in == '0':
             unmute_in = 'Permanent'
         Bot = ctx.guild.get_member(750415350348382249)
         if Bot.guild_permissions.manage_messages and Bot.guild_permissions.manage_roles:
             await ctx.message.add_reaction(agree_emoji())
             embed = discord.Embed(title=f"Медленный режим в {member} включён", color=discord.Colour.blurple(),
                                   description=f'Интервал: `{interval}` секунд \nМедленный режим отключется через: `{unmute_in}` минут')
             await ctx.send(embed=embed)
         else:
             await ctx.message.add_reaction(warning_emoji())
             embed = discord.Embed(
                 title=f"Медленный режим у {member} включён, но некотороые необходимые права отсутствуют",
                 color=discord.Colour.blurple(),
                 description=f'Интервал: `{interval}` секунд \nМедленный режим отключется через: `{unmute_in}` минут \nОтсутствуент право "Управлять сообщениями". Медленный режим не будет работать корректно')
             await ctx.send(embed=embed)
     else:
         await ctx.message.add_reaction(disagree_emoji())
         embed = discord.Embed(title=f"{disagree_emoji()} Ошибка",
                               description="Невозможно включить медленный режим каналу дважды.",
                               color=discord.Colour.red())
         await ctx.send(embed=embed)
     await asyncio.sleep(int(unmute_in) * 60)
     if await db_load_req(
             f"SELECT COUNT(*) as count FROM mutechannel WHERE id = {member.id} AND guild_id = {ctx.guild.id}") == 1 and unmute_in != 'Permanent':
         cur = data.cursor()
         cur.execute(f"DELETE FROM mutechannel WHERE id = {member.id} AND guild_id = {ctx.guild.id}")
         data.commit()
         await ctx.message.add_reaction(agree_emoji())
         embed = discord.Embed(title=f"Медленный режим у {member} отключён", color=discord.Colour.blurple())
         await ctx.send(embed=embed)
Esempio n. 3
0
 async def channelunslowdown(self, ctx, member: discord.TextChannel = None):
     if member == None:
         member = ctx.message.channel
     if await db_load_req(
             f"SELECT COUNT(*) as count FROM mutechannel WHERE id = {member.id} AND guild_id = {ctx.guild.id}") == 1:
         cur = data.cursor()
         cur.execute(f"DELETE FROM mutechannel WHERE id = {member.id} AND guild_id = {ctx.guild.id}")
         data.commit()
         await ctx.message.add_reaction(agree_emoji())
         embed = discord.Embed(title=f"Медленный режим в {member} отключён", color=discord.Colour.blurple())
         await ctx.send(embed=embed)
     else:
         await ctx.message.add_reaction(disagree_emoji())
         embed = discord.Embed(title=f"{disagree_emoji()} Ошибка",
                               description="Невозможно отключить медленный режим у канла, ведь он уже отключён.",
                               color=discord.Colour.red())
         await ctx.send(embed=embed)
Esempio n. 4
0
 async def unslowdown(self, ctx, member: discord.Member):
     if await db_load_req(
             f"SELECT COUNT(*) as count FROM mutemembers WHERE id = {member.id} AND guild_id = {ctx.guild.id}"
     ) == 1:
         cur = data.cursor()
         cur.execute(
             f"DELETE FROM mutemembers WHERE id = {member.id} AND guild_id = {ctx.guild.id}"
         )
         data.commit()
         await ctx.message.add_reaction(agree_emoji())
         embed = discord.Embed(title=f"Медленный режим у {member} отключён",
                               color=discord.Colour.blurple())
         await ctx.send(embed=embed)
         await usd_log(ctx, member, ctx.author)
     else:
         await ctx.message.add_reaction(disagree_emoji())
         embed = discord.Embed(
             title=f"{disagree_emoji()} Ошибка",
             description=
             "Невозможно отключить медленный режим у пользователя, ведь он уже отключён.",
             color=discord.Colour.red())
         await ctx.send(embed=embed)
Esempio n. 5
0
 async def roleunslowdown(self,
                          ctx,
                          role: discord.Role,
                          subchannel: discord.TextChannel = None):
     if await db_load_req(
             f"SELECT COUNT(*) as count FROM muteroles WHERE id = {role.id} AND guild_id = {ctx.guild.id} AND channel_id = {subchannel.id if subchannel is not None else None}"
     ) == 1:
         cur = data.cursor()
         cur.execute(
             f"DELETE FROM muteroles WHERE id = {role.id} AND guild_id = {ctx.guild.id} AND channel_id = {subchannel.id if subchannel is not None else None}"
         )
         data.commit()
         await ctx.message.add_reaction(agree_emoji())
         embed = discord.Embed(title=f"Медленный режим у {role} отключён",
                               color=discord.Colour.blurple())
         await ctx.send(embed=embed)
     else:
         await ctx.message.add_reaction(disagree_emoji())
         embed = discord.Embed(
             title=f"{disagree_emoji()} Ошибка",
             description=
             "Невозможно отключить медленный режим у пользователя, ведь он уже отключён.",
             color=discord.Colour.red())
         await ctx.send(embed=embed)
Esempio n. 6
0
    async def settings(self, ctx, option, value):
        cur = data.cursor()
        cur.execute(f"SELECT * FROM guilds WHERE id={ctx.guild.id}")
        guild_data = cur.fetchone()
        db_guild_possible_options = [
            "mod", "mute_role", "log_channel", "language"
        ]
        mod_possible_value = [1, 2, 3]
        language_possible_value = ['ru', 'en']
        if await db_valid_cheker(ctx):
            language = await get_guild_language(ctx)
            if option in db_guild_possible_options:
                if option == db_guild_possible_options[0]:
                    if int(value) in mod_possible_value:
                        await db_dump_req(
                            f"UPDATE guilds SET mod = {int(value)} WHERE id = {ctx.guild.id};"
                        )
                        if int(value) == 3 and ctx.guild.get_role(
                                int(guild_data[5])) is None:
                            await ctx.message.add_reaction(warning_emoji())
                            await ctx.send(
                                "Роль мута не назначена, данный режим не сможет рабоать без неё.\nЧтобы установить роль мута используйте `ts!settings mute_role {роль}` (в качестве аргумента комманды нужно использовать упоминание или ID)."
                            )
                        else:
                            await ctx.message.add_reaction(agree_emoji())
                    else:
                        await ctx.send(
                            f"{lang[language]['Parameter']} `{option}` {lang[language]['CannotSet']} `{value}`"
                        )
                        await ctx.message.add_reaction(disagree_emoji())

                elif option == db_guild_possible_options[1]:
                    if value != '0':
                        role = convert_to_role(ctx.guild, value)
                        if role is not None:
                            role_id = role.id
                        else:
                            role_id = 0
                            await ctx.send(
                                f"{lang[language]['Parameter']} `{option}` {lang[language]['CannotSet']} `{value}`"
                            )
                            await ctx.message.add_reaction(disagree_emoji())
                    else:
                        role_id = 0
                    await db_dump_req(
                        f"UPDATE guilds SET mute_role_id = {int(role_id)} WHERE id = {ctx.guild.id};"
                    )
                    await ctx.message.add_reaction(agree_emoji())

                elif option == db_guild_possible_options[2]:
                    if value != '0':
                        txtchannel = convert_to_channel(value)
                        if txtchannel is not None:
                            channelid = txtchannel.id
                        else:
                            channelid = 0
                            await ctx.send(
                                f"{lang[language]['Parameter']} `{option}` {lang[language]['CannotSet']} `{value}`"
                            )
                            await ctx.message.add_reaction(disagree_emoji())
                    else:
                        channelid = 0
                    await db_dump_req(
                        f"UPDATE guilds SET log_channel_id = {int(channelid)} WHERE id = {ctx.guild.id};"
                    )
                    await ctx.message.add_reaction(agree_emoji())

                elif option == db_guild_possible_options[3]:
                    if value in language_possible_value:
                        await db_dump_req(
                            f'UPDATE guilds SET language = "{value}" WHERE id = {ctx.guild.id};'
                        )
                        await ctx.message.add_reaction(agree_emoji())
                    else:
                        await ctx.send(
                            f"{lang[language]['Parameter']} `{option}` {lang[language]['CannotSet']} `{value}`"
                        )
                        await ctx.message.add_reaction(disagree_emoji())

            else:
                await ctx.send(
                    f"{lang[language]['Parameter']} `{option}` {lang[language]['NotFound']}"
                )
                await ctx.message.add_reaction(disagree_emoji())