使用指令
在BotRoute中注册
和事件响应中的handler一样,我们也需要将指令,通过BotRoute注册之后,才能跑起来
配置和handler类似
@as_command()
class MyCommand:
    pass
bot.apply_routes([
    BotRoute(
        friends=None,
        groups={
            "onebot": ["123456"]
        },
        handlers=[],
        commands = [MyCommand],
    )
])
通过装饰器形式定义指令
@as_command()
class MyCommand:
    pass
手动“调用”装饰器,将同一个class注册为多个指令
当我们从社区获取指令时,有时,指令的作者并没有对指令应用as_command,而是将这一步讲给了我们来实现
这样,我们就能通过配置as_command的参数,来实现不同的效果
我们已经可以获取到指令的class,但是似乎没有办法在这个class上使用装饰器了,因为这个class定义好了
这时候,我们就可以手动调用as_command,来将这个class注册为指令
因为as_command装饰器的本质,就是一个函数,这个函数,会返回第二个函数,这个第二个函数,接受一个class,将其注册为指令
所以
@as_command()
class MyCommand:
    pass
等价于
as_command()(MyCommand)
因为我们之后要将注册完成的class,再应用到BotRoute中,所以,我们可以将这个class,赋值给一个变量
my_command = as_command()(MyCommand)
bot.apply_routes([
    BotRoute(
        friends=None,
        groups={
            "onebot": ["123456"]
        },
        handlers=[],
        commands = [my_command],
    )
])