Skip to content

插件开发

如果需要机器人本体提供的功能可查阅ATRI提供的功能LK插件提供的功能.

符合ATRI-LK规范的插件

1. 如何创建一个能够让ATRI识别的插件

首先在plugins目录下创建一个plugin_name.py文件或者一个plugin_name软件包。

plugin_name.pyplugin_name/__init__.py中输入以下代码便可以创建一个ATRI能够识别的插件。

python
from ATRI.service import Service

service_name = Service("服务名").document("服务介绍").type(Service.ServiceType.TYPENAME).version('1.0.0')

或者:

python
from ATRI.service import Service

service_name = Service(
    "服务名"
    "服务介绍"
    '1.0.0'
    Service.ServiceType.TYPENAME
)

Service.ServiceType.TYPENAME中的TYPENAME并不存在,请自行改为自己想要的类型。

服务的更多属性值请参考服务属性

2. 为服务添加功能

在创建完一个名为service_name的服务后,便可以为其添加事件响应器(Matcher)来实现功能的添加。

以下为添加一个名为matcher_name的类型为on_command事件响应器代码,通过事件响应器实现功能。

python
matcher_name = service_name.on_command(cmd="指令名称", docs="指令介绍")

更多匹配方式请参考事件响应器

ATRI插件依然也支持原版的事件响应器,但不能在服务菜单中找到。

3. 实现功能

后续插件功能的实现与NoneBot插件的实现一致。请参考官方文档学习插件编写。

ATRI移植

原版ATRI插件依然可用,但插件类型会成为默认值其他插件。从原版ATRI插件进行移植只需要进行以下修改即可。

python
# 原来的服务
service = Service("服务名").document("服务介绍").set_other_attribute(args,)
# 新的服务
service = Service("服务名").document("服务介绍").type(Service.ServiceType.TYPENAME).version('1.0.0').set_other_attribute(args,)

从其他nonebot插件移植

待补充

实战教学

ATRI插件

LK插件附属插件

自定义数据

Released under the CC-BY-SA-4.0 License.