async def addbadpatterns(self, ctx: Context, *, patterns: str):
        patterns = patterns.lower().split(' ')

        settings = settings_collection.find_one({'_id': ctx.guild.id})

        if 'bad_patterns' in settings.keys():
            existing_patterns = settings['bad_patterns']

            for pattern in existing_patterns:
                if pattern in patterns:
                    pass

                else:
                    existing_patterns.append(pattern)

            settings['bad_patterns'] = existing_patterns

            settings_collection.find_one_and_update(
                {"_id": ctx.guild.id}, {"$set": {
                    "settings": settings
                }})

        else:
            settings['bad_patterns'] = patterns

            settings_collection.find_one_and_update(
                {"_id": ctx.guild.id}, {"$set": {
                    "settings": settings
                }})
    async def setleavemessage(self, ctx: Context, *, message: str):
        '''
        Set a message that the bot should send when a person leaves the server.
        Requires administrator permission.
        You can add `{ mention }` to the message and the bot will replace it with a mention of the user that left.
        '''

        settings = settings_collection.find_one({"_id":
                                                 ctx.guild.id})['settings']

        settings['leave_message'] = message

        settings_collection.find_one_and_update(
            {"_id": ctx.guild.id}, {"$set": {
                "settings": settings
            }})

        await ctx.send(":white_check_mark: Successfully set leave message!")
    async def setsuggestionchannel(self, ctx: Context, channel_id: int):
        '''
        Set a channel in which to receive server suggestions.
        '''
        settings = settings_collection.find_one({"_id":
                                                 ctx.guild.id})['settings']

        if discord.utils.get(ctx.guild.text_channels, id=channel_id):
            settings['suggestion_channel'] = channel_id
            settings_collection.find_one_and_update(
                {"_id": ctx.guild.id}, {"$set": {
                    "settings": settings
                }})

            await ctx.send(
                ":white_check_mark: Successfully set suggestion channel!")

        else:
            await ctx.send(":x: That's not a valid channel ID!")
    async def prefix(self, ctx: Context, prefix: str = ""):
        if prefix == "":
            settings = settings_collection.find_one({"_id":
                                                     ctx.guild.id})['settings']

            if 'prefix' in settings.keys():
                embed = discord.Embed(
                    title=f":shield: Prefix for **{ctx.guild.name}**",
                    description=f"My prefix: `{settings['prefix']}`",
                    color=discord.Color.blurple())

                embed.set_footer(
                    text=
                    f"Requested by {ctx.author.name}#{ctx.author.discriminator}"
                )

                await ctx.send(embed=embed)

            else:
                embed = discord.Embed(
                    title=f":shield: Prefix for **{ctx.guild.name}**",
                    description="My prefix: `-`",
                    color=discord.Color.blurple())

                embed.set_footer(
                    text=
                    f"Requested by {ctx.author.name}#{ctx.author.discriminator}"
                )

                await ctx.send(embed=embed)

        else:
            settings = settings_collection.find_one({"_id":
                                                     ctx.guild.id})['settings']

            settings['prefix'] = prefix

            settings_collection.find_one_and_update(
                {"_id": ctx.guild.id}, {"$set": {
                    "settings": settings
                }})
    async def setwelcomechannel(self, ctx: Context, channel_id: int):
        '''
        Command to set a designated channel where the bot will send a message when a user joins/leaves the server.
        Requires you to have administrator permission.
        '''

        settings = settings_collection.find_one({"_id":
                                                 ctx.guild.id})['settings']

        if discord.utils.get(ctx.guild.text_channels, id=channel_id):
            settings['welcome_channel'] = channel_id
            settings_collection.find_one_and_update(
                {"_id": ctx.guild.id}, {"$set": {
                    "settings": settings
                }})

            await ctx.send(
                ":white_check_mark: Successfully set welcome channel!")

        else:
            await ctx.send(":x: That's not a valid channel ID!")
    async def setautomod(self, ctx: Context, mode: str):
        settings = settings_collection.find_one({"_id":
                                                 ctx.guild.id})['settings']

        if mode == 'on':
            settings['automod'] = mode

        elif mode == 'off':
            settings['automod'] = mode

        else:
            await ctx.send(
                f":x: Invalid option `{mode}`. Please pick between `on` and `off`"
            )

            return

        await ctx.send(
            f':white_check_mark: Successfully set automod to `{mode}`')

        settings_collection.find_one_and_update(
            {"_id": ctx.guild.id}, {"$set": {
                "settings": settings
            }})