Update docs

This commit is contained in:
Him188 2020-09-12 23:25:16 +08:00
parent 712ecb5a80
commit 5250e3779f
3 changed files with 15 additions and 13 deletions

View File

@ -20,7 +20,7 @@ import net.mamoe.mirai.console.plugin.Plugin
*/
public interface PluginDescription {
/**
* 插件 ID.
* 插件 ID. 用于指令权限等一些内部处理
*
* - 仅允许英文字母, '-', '_', '.'. 在内部操作处理时不区分大小写.
* - 类似于 Java 包名, 插件 ID 需要 '域名.名称' 格式, `net.mamoe.mirai.example-plugin`
@ -43,25 +43,21 @@ public interface PluginDescription {
* - 合法 `net.mamoe.mirai.example-plugin`
* - 非法 `.example-plugin`
*
* ID 用于指令权限等一些内部处理
*
* @see ID_REGEX
* @see FORBIDDEN_ID_NAMES
*/
public val id: String
/**
* 插件名称. 允许中文, 允许各类符号.
* 插件名称用于展示给用户仅取决于 `PluginDescription` 提供的 `name`与主类类名等其他信息无关
*
* 插件名称不能完全是以下其中一种 ([FORBIDDEN_ID_NAMES]).
* 名称允许中文, 允许各类符号但不能完全是以下其中一种忽略大小写([FORBIDDEN_ID_NAMES]):
* - console
* - main
* - plugin
* - config
* - data
*
* 插件名称用于显示给用户.
*
* @see FORBIDDEN_ID_NAMES
*/
public val name: String
@ -84,7 +80,7 @@ public interface PluginDescription {
* - `1.0.0-M2-1`
* - `1` (尽管非常不建议这么做)
*
* 非法版本号:
* 非法版本号:
* - `DEBUG-1`
* - `-1.0`
* - `v1.0` (不允许 "v")

View File

@ -1,2 +1,9 @@
# Mirai Console Backend - Extensions
Mirai Console 拥有灵活的 Extensions API支持扩展 Console 的一些服务。
## 扩展
## 注册扩展

View File

@ -83,8 +83,7 @@ Mirai Console 使用类似 `ServiceLoader` 的机制加载插件。
- 插件自身的版本要求遵循 [语义化版本 2.0.0](https://semver.org/lang/zh-CN/) 规范, 合格的版本例如: `1.0.0`, `1.0`, `1.0-M1`, `1.0-pre-1`
- 插件依赖的版本遵循 [语义化版本 2.0.0](https://semver.org/lang/zh-CN/) 规范, 同时支持 [Apache Ivy 风格表示方法](http://ant.apache.org/ivy/history/latest-milestone/settings/version-matchers.html).
##### 插件名
插件名仅取决于 `PluginDescription` 提供的 `name`,与主类类名等其他信息无关。
有关描述的详细信息可在开发时查看源码内文档。
#### 实现 Kotlin 插件主类
@ -120,7 +119,7 @@ public final class JExample extends JavaPlugin {
public static final JExample INSTANCE = new JExample(); // 可以像 Kotlin 一样静态初始化单例
private JExample() {
super(new JvmPluginDescriptionBuilder(
"JExample", // name
"org.example.test-plugin", // name
"1.0.0" // version
)
// .author("...")
@ -140,7 +139,7 @@ public final class JExample extends JavaPlugin {
}
public JExample() { // 此时必须 public
super(new JvmPluginDescriptionBuilder(
"JExample", // name
"org.example.test-plugin", // id
"1.0.0" // version
)
// .author("...")
@ -176,7 +175,7 @@ Mirai Console 不提供热加载和热卸载功能,所有插件只能在服务
[`JvmPluginLoader`] 调用插件的 `onLoad()`,在 `onLoad()` 正常返回后插件被认为成功加载。
由于 `onLoad()` 只会被初始化一次,插件可以在该方法内进行一些*一次性*的*初始化*任务。
由于 `onLoad()` 只会被初始化一次,插件可以在该方法内进行一些*一次性*的*初始化*任务,如 [注册扩展](Extensions.md#注册扩展)
**在 `onLoad()` 时插件并未处于启用状态,此时插件不能进行监听事件,加载配置等操作。**