diff --git a/redbot/core/bot.py b/redbot/core/bot.py index 0ff047efa..d46e8d7e5 100644 --- a/redbot/core/bot.py +++ b/redbot/core/bot.py @@ -113,6 +113,7 @@ class RedBase( help__verify_checks=True, help__verify_exists=False, help__tagline="", + help__use_tick=False, description="Red V3", invite_public=False, invite_perm=0, diff --git a/redbot/core/commands/help.py b/redbot/core/commands/help.py index 251b4e9ca..47dbc347f 100644 --- a/redbot/core/commands/help.py +++ b/redbot/core/commands/help.py @@ -76,6 +76,7 @@ class HelpSettings: verify_exists: bool = False tagline: str = "" delete_delay: int = 0 + use_tick: bool = False # Contrib Note: This is intentional to not accept the bot object # There are plans to allow guild and user specific help settings @@ -127,6 +128,7 @@ class HelpSettings: "\nHelp only shows commands which can be used: {verify_checks}" "\nHelp shows unusable commands when asked directly: {verify_exists}" "\nDelete delay: {delete_delay}" + "\nReact with a checkmark when help is sent via DM: {use_tick}" "{tagline_info}" ).format_map(data) @@ -778,7 +780,8 @@ class RedHelpFormatter(HelpFormatterABC): ) else: messages.append(msg) - + if use_DMs and help_settings.use_tick: + await ctx.tick() # The if statement takes into account that 'destination' will be # the context channel in non-DM context, reusing 'channel_permissions' to avoid # computing the permissions twice. diff --git a/redbot/core/core_commands.py b/redbot/core/core_commands.py index c2d926985..2e0de22ce 100644 --- a/redbot/core/core_commands.py +++ b/redbot/core/core_commands.py @@ -2242,6 +2242,22 @@ class Core(commands.commands._RuleDropper, commands.Cog, CoreLogic): else: await ctx.send(_("Help will filter hidden commands.")) + @helpset.command(name="usetick") + async def helpset_usetick(self, ctx: commands.Context, use_tick: bool = None): + """ + This allows the help command message to be ticked if help is sent in a DM. + + Defaults to False. + Using this without a setting will toggle. + """ + if use_tick is None: + use_tick = not await ctx.bot._config.help.use_tick() + await ctx.bot._config.help.use_tick.set(use_tick) + if use_tick: + await ctx.send(_("Help will now tick the command when sent in a DM.")) + else: + await ctx.send(_("Help will not tick the command when sent in a DM.")) + @helpset.command(name="verifychecks") async def helpset_permfilter(self, ctx: commands.Context, verify: bool = None): """