# Buggy code
async def send_pages(
    self, ctx: Context, pages: List[Union[str, discord.Embed]], embed: bool = True
):
    """
    Sends pages based on settings.
    """

    if not self.USE_MENU:
        max_pages_in_guild = await ctx.bot.db.help.max_pages_in_guild()
        destination = ctx.author if len(pages) > max_pages_in_guild else ctx

        if embed:
            for page in pages:
                await destination.send(embed=page)
        else:
            for page in pages:
                await destination.send(page)
    else:
        await menus.menu(ctx, pages, menus.DEFAULT_CONTROLS)


# Traceback (discord.errors.Forbidden)
019-05-15 16:23:44] [ERROR] red: Exception in command 'help'
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/discord/ext/commands/core.py", line 63, in wrapped
ret = await coro(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/redbot/core/commands/help.py", line 513, in red_help
await ctx.bot.send_help_for(ctx, thing_to_get_help_for)
File "/usr/local/lib/python3.7/site-packages/redbot/core/bot.py", line 132, in send_help_for
return await self._help_formatter.send_help(ctx, help_for)
File "/usr/local/lib/python3.7/site-packages/redbot/core/commands/help.py", line 95, in send_help
await self.format_bot_help(ctx)
File "/usr/local/lib/python3.7/site-packages/redbot/core/commands/help.py", line 394, in format_bot_help
await self.send_pages(ctx, pages, embed=False)
File "/usr/local/lib/python3.7/site-packages/redbot/core/commands/help.py", line 500, in send_pages
await destination.send(page)
File "/usr/local/lib/python3.7/site-packages/discord/abc.py", line 776, in send
data = await state.http.send_message(channel.id, content, tts=tts, embed=embed, nonce=nonce)
File "/usr/local/lib/python3.7/site-packages/discord/http.py", line 218, in request
raise Forbidden(r, data)
discord.errors.Forbidden: FORBIDDEN (status code: 403): Cannot send messages to this user

# Fixed code
async def send_pages(
    self, ctx: Context, pages: List[Union[str, discord.Embed]], embed: bool = True
):
    """
    Sends pages based on settings.
    """

    if not (
        ctx.channel.permissions_for(ctx.me).add_reactions
        and await ctx.bot.db.help.use_menus()
    ):
        max_pages_in_guild = await ctx.bot.db.help.max_pages_in_guild()
        destination = ctx.author if len(pages) > max_pages_in_guild else ctx

        if embed:
            for page in pages:
                try:
                    await destination.send(embed=page)
                except discord.Forbidden:
                    await ctx.send(
                        T_(
                            "I couldn't send the help message to you in DM. "
                            "Either you blocked me or you disabled DMs in this server."
                        )
                    )
        else:
            for page in pages:
                try:
                    await destination.send(page)
                except discord.Forbidden:
                    await ctx.send(
                        T_(
                            "I couldn't send the help message to you in DM. "
                            "Either you blocked me or you disabled DMs in this server."
                        )
                    )
    else:
        if len(pages) > 1:
            await menus.menu(ctx, pages, menus.DEFAULT_CONTROLS)
        else:
            await menus.menu(ctx, pages, {"\N{CROSS MARK}": menus.close_menu})