From 47a267b38bc63c7f750e2e81d049b617eb25cd07 Mon Sep 17 00:00:00 2001 From: Kreusada Ramicario <67752638+Kreusada@users.noreply.github.com> Date: Tue, 2 Jan 2024 04:25:02 +0000 Subject: [PATCH] [Help] Allow prefix formatting in taglines (#4972) Co-authored-by: Michael Oliveira <34169552+Flame442@users.noreply.github.com> --- docs/cog_guides/core.rst | 3 +++ redbot/core/commands/help.py | 24 ++++++++++++++++++------ redbot/core/core_commands.py | 3 +++ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/docs/cog_guides/core.rst b/docs/cog_guides/core.rst index d3a3ed849f9..69e1895494f 100644 --- a/docs/cog_guides/core.rst +++ b/docs/cog_guides/core.rst @@ -1683,8 +1683,11 @@ Set the tagline to be used. The maximum tagline length is 2048 characters. This setting only applies to embedded help. If no tagline is specified, the default will be used instead. +You can use ``[p]`` in your tagline, which will be replaced by the bot's prefix. + **Examples:** - ``[p]helpset tagline Thanks for using the bot!`` + - ``[p]helpset tagline Use [p]invite to add me to your server.`` - ``[p]helpset tagline`` - Resets the tagline to the default. **Arguments:** diff --git a/redbot/core/commands/help.py b/redbot/core/commands/help.py index 75f05bc94bc..dcff3f0410e 100644 --- a/redbot/core/commands/help.py +++ b/redbot/core/commands/help.py @@ -308,6 +308,12 @@ def get_default_tagline(ctx: Context): command2=f"{ctx.clean_prefix}help ", ) + @staticmethod + def format_tagline(ctx: Context, tagline: str): + if not tagline: + return + return tagline.replace("[p]", ctx.clean_prefix) + @staticmethod def get_command_signature(ctx: Context, command: commands.Command) -> str: parent = command.parent @@ -345,7 +351,7 @@ async def format_command_help( description = command.description or "" - tagline = (help_settings.tagline) or self.get_default_tagline(ctx) + tagline = self.format_tagline(ctx, help_settings.tagline) or self.get_default_tagline(ctx) signature = _("Syntax: {command_signature}").format( command_signature=self.get_command_signature(ctx, command) ) @@ -569,7 +575,7 @@ async def format_cog_help(self, ctx: Context, obj: commands.Cog, help_settings: return description = obj.format_help_for_context(ctx) - tagline = (help_settings.tagline) or self.get_default_tagline(ctx) + tagline = self.format_tagline(ctx, help_settings.tagline) or self.get_default_tagline(ctx) if await self.embed_requested(ctx): emb = {"embed": {"title": "", "description": ""}, "footer": {"text": ""}, "fields": []} @@ -642,7 +648,7 @@ async def format_bot_help(self, ctx: Context, help_settings: HelpSettings): return description = ctx.bot.description or "" - tagline = (help_settings.tagline) or self.get_default_tagline(ctx) + tagline = self.format_tagline(ctx, help_settings.tagline) or self.get_default_tagline(ctx) if await self.embed_requested(ctx): emb = {"embed": {"title": "", "description": ""}, "footer": {"text": ""}, "fields": []} @@ -763,7 +769,9 @@ async def command_not_found(self, ctx, help_for, help_settings: HelpSettings): name=_("{ctx.me.display_name} Help Menu").format(ctx=ctx), icon_url=ctx.me.display_avatar, ) - tagline = help_settings.tagline or self.get_default_tagline(ctx) + tagline = self.format_tagline( + ctx, help_settings.tagline + ) or self.get_default_tagline(ctx) ret.set_footer(text=tagline) await ctx.send(embed=ret) else: @@ -776,7 +784,9 @@ async def command_not_found(self, ctx, help_for, help_settings: HelpSettings): name=_("{ctx.me.display_name} Help Menu").format(ctx=ctx), icon_url=ctx.me.display_avatar, ) - tagline = help_settings.tagline or self.get_default_tagline(ctx) + tagline = self.format_tagline( + ctx, help_settings.tagline + ) or self.get_default_tagline(ctx) ret.set_footer(text=tagline) await ctx.send(embed=ret) else: @@ -795,7 +805,9 @@ async def subcommand_not_found(self, ctx, command, not_found, help_settings: Hel name=_("{ctx.me.display_name} Help Menu").format(ctx=ctx), icon_url=ctx.me.display_avatar, ) - tagline = help_settings.tagline or self.get_default_tagline(ctx) + tagline = self.format_tagline(ctx, help_settings.tagline) or self.get_default_tagline( + ctx + ) ret.set_footer(text=tagline) await ctx.send(embed=ret) else: diff --git a/redbot/core/core_commands.py b/redbot/core/core_commands.py index 6483de26adb..3930ac79408 100644 --- a/redbot/core/core_commands.py +++ b/redbot/core/core_commands.py @@ -4535,8 +4535,11 @@ async def helpset_tagline(self, ctx: commands.Context, *, tagline: str = None): The maximum tagline length is 2048 characters. This setting only applies to embedded help. If no tagline is specified, the default will be used instead. + You can use `[\u200bp]` in your tagline, which will be replaced by the bot's prefix. + **Examples:** - `[p]helpset tagline Thanks for using the bot!` + - `[p]helpset tagline Use [\u200bp]invite to add me to your server.` - `[p]helpset tagline` - Resets the tagline to the default. **Arguments:**