Skip to content

快速开始

两种代码风格均可

风格 特点
NONEBOT2 兼容性更好
AYAKA 代码更紧凑,更快的插件加载速度

状态机

from ayaka import AyakaBox
from nonebot import on_command

# 创建box
box = AyakaBox("测试")

# 定义matchers
ENTER = on_command("打开", aliases={"open"}, rule=box.rule())
EXIT = on_command("关闭", rule=box.rule(states="*"))
DO_SOMETHING = on_command("你好", rule=box.rule(states=["idle", "world"]))
GOTO_WORLD = on_command("换个状态", rule=box.rule(states="idle"))

# 打开盒子
@ENTER.handle()
async def enter_box():
    await box.start()

# 关闭盒子
@EXIT.handle()
async def exit_box():
    await box.close()

# 你好
@DO_SOMETHING.handle()
async def hello():
    await DO_SOMETHING.send(f"[{box.state}] 你好,世界!")

# 换个状态
@GOTO_WORLD.handle()
async def goto_world():
    await box.set_state("world")
    await GOTO_WORLD.send("已设置状态为world")
from ayaka import AyakaBox

# 创建box
box = AyakaBox("测试")

# 打开盒子
box.set_start_cmds(cmds=["打开", "open"])
# 关闭盒子
box.set_close_cmds(cmds="关闭")

# 你好
@box.on_cmd(cmds="你好", states=["idle", "world"])
async def hello():
    await box.send(f"[{box.state}] 你好,世界!")

# 换个状态
@box.on_cmd(cmds="换个状态", states="idle")
async def goto_world():
    await box.set_state("world")
    await box.send("已设置状态为world")

实现效果

"user" 说:你好 "user" 说:你好 "user" 说:打开 "Bot" 说:已启动应用[测试] "user" 说:你好 "Bot" 说:[idle] 你好,世界! "user" 说:换个状态 "Bot" 说:已设置状态为world "user" 说:你好 "Bot" 说:[world] 你好,世界! "user" 说:关闭 "Bot" 说:已关闭应用[测试]

数据缓存

from ayaka import AyakaBox
from pydantic import BaseModel
from nonebot import on_command

class CacheData(BaseModel):
    time:int = 0

# 创建box
box = AyakaBox("测试")

# 定义matcher
PLUS_ONE = on_command("加一秒", rule=box.rule())

# 加一秒
@PLUS_ONE.handle()
async def plus_one():
    data = box.get_data(CacheData)
    data.time += 1
    await PLUS_ONE.send(f"{data.time}")
from ayaka import AyakaBox
from pydantic import BaseModel

class CacheData(BaseModel):
    time:int = 0

# 创建box
box = AyakaBox("测试")

# 加一秒
@box.on_cmd(cmds="加一秒")
async def plus_one():
    data = box.get_data(CacheData)
    data.time += 1
    await box.send(f"{data.time}")

实现效果

"user" 说:加一秒 "Bot" 说:1 "user" 说:加一秒 "Bot" 说:2 "user" 说:加一秒 "Bot" 说:3 "user" 说:加一秒 "Bot" 说:4

注意:重启bot后数据丢失

下一步

在这里~ ↘