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}")
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)
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)
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)
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)
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())