From 61c9871feea9a5b8e3b0522b361e4a78048142c0 Mon Sep 17 00:00:00 2001 From: Nawaf <30420446+xLive@users.noreply.github.com> Date: Mon, 24 Mar 2025 16:59:06 +0300 Subject: [PATCH 1/3] Add reportset ping command --- reports/core.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/reports/core.py b/reports/core.py index 77bffdd7..76d5718c 100644 --- a/reports/core.py +++ b/reports/core.py @@ -281,6 +281,14 @@ async def emotes(self, ctx, toggle: Optional[bool]): await self.config.guild(ctx.guild).emote_reactions.set(False) return await ctx.send("The setting is now disabled") + @reportset.command() + async def ping(self, ctx, category: discord.CategoryChannel, role: discord.Role): + """ + Sets the role to be pinged when a report is sent in a category + """ + await self.config.guild(ctx.guild).category_roles.set_raw(str(category.id), value=role.id) + await ctx.send(f"Done. Set {role.mention} to be pinged when a report is sent in {category.name}") + @commands.Cog.listener() async def on_message(self, message): """ From 840b247026fc4276aa5cfbe0b660a5c2bbbdf46b Mon Sep 17 00:00:00 2001 From: Nawaf <30420446+xLive@users.noreply.github.com> Date: Mon, 24 Mar 2025 16:59:27 +0300 Subject: [PATCH 2/3] Add reportset removeping command --- reports/core.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/reports/core.py b/reports/core.py index 76d5718c..cc45b878 100644 --- a/reports/core.py +++ b/reports/core.py @@ -289,6 +289,20 @@ async def ping(self, ctx, category: discord.CategoryChannel, role: discord.Role) await self.config.guild(ctx.guild).category_roles.set_raw(str(category.id), value=role.id) await ctx.send(f"Done. Set {role.mention} to be pinged when a report is sent in {category.name}") + @reportset.command() + async def removeping(self, ctx, category: discord.CategoryChannel): + """ + Removes the pinged role for a report in a specific category. + """ + data = await self.config.guild(ctx.guild).category_roles.get_raw(str(category.id), default=None) + if data is None: + await ctx.send(f"No ping role is set for {category.name}.") + return + + await self.config.guild(ctx.guild).category_roles.clear_raw(str(category.id)) + await ctx.send(f"Removed the ping role for reports in {category.name}.") + + @commands.Cog.listener() async def on_message(self, message): """ From 95ecdd22902233264ac8963c7e71dc02d8cb49f4 Mon Sep 17 00:00:00 2001 From: Nawaf <30420446+xLive@users.noreply.github.com> Date: Mon, 24 Mar 2025 17:01:01 +0300 Subject: [PATCH 3/3] Ping category role in report message --- reports/core.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/reports/core.py b/reports/core.py index cc45b878..dbe3159c 100644 --- a/reports/core.py +++ b/reports/core.py @@ -11,6 +11,7 @@ "emote_reactions": False, "claim_reports": False, "recieve_dms": [], + "category_roles": {}, } # TODO Add reportdm command to disable dms on reports. To avoid annoyed members. @@ -142,8 +143,14 @@ async def send_report_to_mods(self, ctx, embed, report_channel): Sending to channel """ channel_report = self.bot.get_channel(report_channel) + if ctx.channel.category: + role_id = await self.config.guild(ctx.guild).category_roles.get_raw(str(ctx.channel.category.id), default=None) + ping = ctx.guild.get_role(role_id) if role_id else None + else: + ping = None + try: - await channel_report.send(embed=embed) + await channel_report.send(content=ping.mention if ping else None, embed=embed, allowed_mentions=discord.AllowedMentions(roles=True)) except discord.Forbidden: self.log.warning("Unable to send message in {}".format(channel_report)) except discord.HTTPException as e: