Command Groups

Can commands can be grouped or grouped into groups of groups. In Crescent these groups are called groups and sub_groups.

import crescent

# Create a group
group = crescent.Group("outer-group")
# Create a sub group
sub_group = group.sub_group("inner-group")

To add a command to a group simply do:

@client.include
@group.child
@crescent.command
async def group_command(ctx: crescent.Context):
    ...

@client.include
@sub_group.child
@crescent.command
async def sub_group_command(ctx: crescent.Context):
    ...

Do not combine the group and sub_group decorators. This will cause a command to be registered multiple times.

Illegal Combos

You can not create a group with the same name as a command.

help_group = crescent.Group("help")

@client.include
@help_group.child
@crescent.command
async def say(ctx: crescent.Context):
    ...

# This command will cause the bot to crash
@client.include
@crescent.command
async def help(ctx: crescent.Context):
    ...