From 6dddcf536f7a951f71a184a676fc797cb907d973 Mon Sep 17 00:00:00 2001 From: DangerCode <157859533+TornikeCodes@users.noreply.github.com> Date: Mon, 29 Apr 2024 11:36:54 -0400 Subject: [PATCH 01/10] Added an option where it returns "exclude muted members" with the data --- utils/tools.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/tools.py b/utils/tools.py index 044817ef..279da31f 100644 --- a/utils/tools.py +++ b/utils/tools.py @@ -181,7 +181,7 @@ async def get_data(bot, guild): return res return await conn.fetchrow( - "INSERT INTO data VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13) " + "INSERT INTO data VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) " "RETURNING *", guild, None, @@ -196,6 +196,7 @@ async def get_data(bot, guild): False, False, None, + False, ) From 9df23c32cd8c74c3a35e97a6bdc9da807d22c51e Mon Sep 17 00:00:00 2001 From: DangerCode <157859533+TornikeCodes@users.noreply.github.com> Date: Mon, 29 Apr 2024 11:39:33 -0400 Subject: [PATCH 02/10] Updated data table to add exclude muted --- migrations/2022-05-01-135059_initialize_db/up.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/migrations/2022-05-01-135059_initialize_db/up.sql b/migrations/2022-05-01-135059_initialize_db/up.sql index f347f49b..712cb7c6 100644 --- a/migrations/2022-05-01-135059_initialize_db/up.sql +++ b/migrations/2022-05-01-135059_initialize_db/up.sql @@ -12,6 +12,7 @@ CREATE TABLE data blacklist bigint[] NOT NULL, anonymous boolean NOT NULL, commandonly boolean NOT NULL, + excludemuted boolean NOT NULL, PRIMARY KEY (guild) ); From 2885e8871f954c0091d149046ba2e74cf7e23a9a Mon Sep 17 00:00:00 2001 From: DangerCode <157859533+TornikeCodes@users.noreply.github.com> Date: Mon, 29 Apr 2024 11:42:08 -0400 Subject: [PATCH 03/10] Create up.sql --- migrations/2024-04-29-192931_add_exclude_muted_members/up.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 migrations/2024-04-29-192931_add_exclude_muted_members/up.sql diff --git a/migrations/2024-04-29-192931_add_exclude_muted_members/up.sql b/migrations/2024-04-29-192931_add_exclude_muted_members/up.sql new file mode 100644 index 00000000..e0235435 --- /dev/null +++ b/migrations/2024-04-29-192931_add_exclude_muted_members/up.sql @@ -0,0 +1 @@ +ALTER TABLE data ADD COLUMN excludemuted boolean; From bbe9cb091ad1014f7627e6f15e574a17b3ea3e20 Mon Sep 17 00:00:00 2001 From: DangerCode <157859533+TornikeCodes@users.noreply.github.com> Date: Mon, 29 Apr 2024 11:43:29 -0400 Subject: [PATCH 04/10] Create down.sql --- migrations/2024-04-29-192931_add_exclude_muted_members/down.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 migrations/2024-04-29-192931_add_exclude_muted_members/down.sql diff --git a/migrations/2024-04-29-192931_add_exclude_muted_members/down.sql b/migrations/2024-04-29-192931_add_exclude_muted_members/down.sql new file mode 100644 index 00000000..cc7bddc5 --- /dev/null +++ b/migrations/2024-04-29-192931_add_exclude_muted_members/down.sql @@ -0,0 +1 @@ +ALTER TABLE data DROP COLUMN excludemuted; From c45166b16161cbf0dfb69893f0aaf22f53bda019 Mon Sep 17 00:00:00 2001 From: DangerCode <157859533+TornikeCodes@users.noreply.github.com> Date: Mon, 29 Apr 2024 11:53:40 -0400 Subject: [PATCH 05/10] Added a check to see if owners have exclude muted members turned on --- cogs/direct_message.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cogs/direct_message.py b/cogs/direct_message.py index a53193df..4672e660 100644 --- a/cogs/direct_message.py +++ b/cogs/direct_message.py @@ -69,6 +69,16 @@ async def send_mail(self, message, guild): await message.channel.send(embed) return + if data[14] is True: + embed = ErrorEmbed( + "Ticket Not Created", + "You can't create a ticket because you are timed out.", + timestamp=True, + ) + embed.set_footer(f"{guild.name} | {guild.id}", guild.icon_url) + await message.channel.send(embed) + return + self.bot.prom.tickets.inc({}) name = "".join( From 85a18844f0db20ad31700715e951db7908876806 Mon Sep 17 00:00:00 2001 From: DangerCode <157859533+TornikeCodes@users.noreply.github.com> Date: Mon, 29 Apr 2024 12:07:27 -0400 Subject: [PATCH 06/10] Added a command to modify exclude muted members --- cogs/configuration.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/cogs/configuration.py b/cogs/configuration.py index 9d226efe..98a5e87a 100644 --- a/cogs/configuration.py +++ b/cogs/configuration.py @@ -89,6 +89,31 @@ async def setup(self, ctx): ) ) + @commands.guild_only() + @commands.command( + description="Prohibit muted members from creating a ticket", + usage="excludemuted", + ) + async def excludemuted(self, ctx): + if (await ctx.message.member.guild_permissions()).administrator is False: + raise commands.MissingPermissions(["administrator"]) + + data = await tools.get_data(self.bot, ctx.guild.id) + toset = True + if data[15] is True: + toset = False + + async with self.bot.pool.acquire() as conn: + await conn.execute("UPDATE data SET excludemuted=$1 WHERE guild=$2", toset, ctx.guild.id) + + await ctx.send( + Embed( + "Block timed out members is now " + f"`{'Enabled' if toset is True else 'Disabled'}`.", + ) + ) + + @commands.guild_only() @commands.command( description="Change the prefix or view the current prefix.", From 61fa4aa762b07692aee9980f6870b6ce6d89c8e3 Mon Sep 17 00:00:00 2001 From: DangerCode <157859533+TornikeCodes@users.noreply.github.com> Date: Mon, 29 Apr 2024 12:09:02 -0400 Subject: [PATCH 07/10] Moved the check for exclude members a little bit up so it executes before it checks for the channel --- cogs/direct_message.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/cogs/direct_message.py b/cogs/direct_message.py index 4672e660..b57ddb13 100644 --- a/cogs/direct_message.py +++ b/cogs/direct_message.py @@ -52,6 +52,16 @@ async def send_mail(self, message, guild): ) return + if data[15] is True: + embed = ErrorEmbed( + "Ticket Not Created", + "You can't create a ticket because you are timed out.", + timestamp=True, + ) + embed.set_footer(f"{guild.name} | {guild.id}", guild.icon_url) + await message.channel.send(embed) + return + channel = None for text_channel in await guild.text_channels(): if tools.is_modmail_channel(text_channel, message.author.id): @@ -69,16 +79,6 @@ async def send_mail(self, message, guild): await message.channel.send(embed) return - if data[14] is True: - embed = ErrorEmbed( - "Ticket Not Created", - "You can't create a ticket because you are timed out.", - timestamp=True, - ) - embed.set_footer(f"{guild.name} | {guild.id}", guild.icon_url) - await message.channel.send(embed) - return - self.bot.prom.tickets.inc({}) name = "".join( From d8c83a316813835fcab20f14468ed0602fe6898a Mon Sep 17 00:00:00 2001 From: DangerCode <157859533+TornikeCodes@users.noreply.github.com> Date: Mon, 29 Apr 2024 12:21:00 -0400 Subject: [PATCH 08/10] Added a check to see if the member is timed out --- cogs/direct_message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cogs/direct_message.py b/cogs/direct_message.py index b57ddb13..68209337 100644 --- a/cogs/direct_message.py +++ b/cogs/direct_message.py @@ -52,7 +52,7 @@ async def send_mail(self, message, guild): ) return - if data[15] is True: + if data[15] is True and message.author.communication_disabled_until is not None: embed = ErrorEmbed( "Ticket Not Created", "You can't create a ticket because you are timed out.", From a1b198b6ff58705041feea861373d1793aebe53d Mon Sep 17 00:00:00 2001 From: DangerCode <157859533+TornikeCodes@users.noreply.github.com> Date: Mon, 29 Apr 2024 12:51:19 -0400 Subject: [PATCH 09/10] Fixed AttributeError for communication_disabled_until --- cogs/direct_message.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cogs/direct_message.py b/cogs/direct_message.py index 68209337..7a8e9b77 100644 --- a/cogs/direct_message.py +++ b/cogs/direct_message.py @@ -51,8 +51,8 @@ async def send_mail(self, message, guild): ErrorEmbed("That server has blacklisted you from sending a message there.") ) return - - if data[15] is True and message.author.communication_disabled_until is not None: + + if data[15] is True and member.timed_out_until is not None: embed = ErrorEmbed( "Ticket Not Created", "You can't create a ticket because you are timed out.", From 99077021a8084a143e0d41a284d17f25e7137c67 Mon Sep 17 00:00:00 2001 From: DangerCode <157859533+TornikeCodes@users.noreply.github.com> Date: Mon, 29 Apr 2024 16:04:51 -0400 Subject: [PATCH 10/10] Update configuration.py --- cogs/configuration.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cogs/configuration.py b/cogs/configuration.py index 98a5e87a..c7f0fb7e 100644 --- a/cogs/configuration.py +++ b/cogs/configuration.py @@ -488,6 +488,7 @@ async def viewconfig(self, ctx): embed.add_field("Advanced Logging", "Enabled" if data[7] is True else "Disabled") embed.add_field("Anonymous Messaging", "Enabled" if data[10] is True else "Disabled") embed.add_field("Command Only", "Enabled" if data[11] is True else "Disabled") + embed.add_field("Exclude Muted", "Enabled" if data[15] is True else "Disabled") embed.add_field("Ticket Creation", "Enabled" if toggle is None else f"Disabled ({toggle})") embed.add_field("Greeting Message", "*Not set*" if greeting is None else greeting, False) embed.add_field("Closing Message", "*Not set*" if closing is None else closing, False)