Skip to content

Commit

Permalink
add: module load by spi docs (#132)
Browse files Browse the repository at this point in the history
  • Loading branch information
cssxsh authored Sep 4, 2022
1 parent 3a033ea commit d4ddbd4
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ chmod +x mcl

1.`mcl` 运行目录下新建 `modules` 目录
2. 将 目标Jar 放入该目录
3. 编辑 `config.json``module_packages` 字段,添加入 `jar文件名(不带扩展名):包名`
3. ~~编辑 `config.json``module_packages` 字段,添加入 `jar文件名(不带扩展名):包名`~~

如有扩展 `test.jar`,需要加载 `com.test` 包中的 `MclModule`,则添加的项为 `test:com.test`
新版 MCL Module 加载将使用 Java SPI Service 的加载方式,不需要再配置 `module_packages` 字段

## `MCL` 默认支持 `Mirai 2.11` 及以上插件格式

Expand Down
7 changes: 4 additions & 3 deletions docs/Module.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ MCL 模块开发文档。
## `MclModule`

* 每个模块类都需继承 `org.itxtech.mcl.module.MclModule`
* 新版 MCL Module 加载将使用 Java SPI Service 的加载方式,
可参考 [META-INF.services](../src/main/resources/META-INF/services/org.itxtech.mcl.module.MclModule) 将类注册

### `prepare`

Expand Down Expand Up @@ -80,6 +82,5 @@ public class Test extends MclModule {

## 注意事项

1. 建议将所有 `MclModule` 分功能组件放在不同 `package` 中,方便独立加载
2. 一个包含 `MclModule``package` 中应仅包含 `MclModule`,因为 `MCL` 会将该 `package` 中所有 `class` 当作 `MclModule` 加载
3. 包含 `MclModule``Jar` 会直接加载入 `MCL``SystemClassLoader` 中,被所有包共享
1. `Jar` 会直接加载入 `MCL``SystemClassLoader` 中,被所有包共享
2. `META-INF/services/org.itxtech.mcl.module.MclModule` 中一行对应一个 MclModule, 行的内容是 模块类 的完整类名

0 comments on commit d4ddbd4

Please sign in to comment.