Skip to content

快速开始

状态机速览

代码

# app.py
from ayaka import AyakaCat

cat = AyakaCat("测试一下")


@cat.on_cmd(cmds=["去睡觉", "睡觉吧"], states="")
async def _():
    cat.state = "睡觉"
    await cat.send("睡了喵")


@cat.on_cmd(cmds="起床", states="睡觉")
async def _():
    cat.state = ""
    await cat.send("醒了喵")


@cat.on_cmd(cmds="吃饭", states="")
async def _():
    cat.state = "吃饭"
    await cat.send("吃饭去了")


@cat.on_cmd(cmds=["重置状态", "退出"], states=["吃饭", "睡觉"])
async def _():
    cat.state = ""
    await cat.send("已清空状态")


if __name__ == "__main__":
    from ayaka.adapters.console import run
    run()

命令表(初始状态为空)

状态 可用命令 下一状态
去睡觉、睡觉吧 睡觉
吃饭 吃饭
睡觉 起床、重置状态、退出
吃饭 重置状态、退出

调试

python app.py

在终端输入你的命令进行测试

you: 去睡觉
bot: 睡了喵

作为nb2插件

以上代码可直接放入src/plugins中,让nb加载即可