mirai/mirai-console/docs/plugin/Plugins.md
Him188 7a6c7a89c0
Update docs for console plugin (#1995)
* Update docs for console plugin

* Update [skip ci]

* Update docs

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2022-05-01 18:03:10 +01:00

4.3 KiB
Raw Blame History

Mirai Console Backend - Plugins

Mirai Console (简称 Console 运行在 JVM,支持使用 KotlinJava 等 JVM 语言编写的插件。

本章节简要介绍 Console 插件架构(与平台无关的基础架构)。

通用的插件接口 - Plugin

所有 Console 插件都必须直接或间接地实现 Plugin 接口。

解释 插件:只要实现了 Plugin 接口的对象都可以叫做「Mirai Console 插件」,简称 「插件」。
为了便捷,内含 Plugin 实现的一个 JAR 文件也可以被称为「插件」。

基础的 Plugin 很通用,它只拥有很少的成员:

interface Plugin : CommandOwner { // CommandOwner 表示该对象可以创建指令
    val isEnabled: Boolean // 当插件已开启时返回 true
    val loader: PluginLoader<*, *> // 能处理这个 Plugin 实例的 PluginLoader
}

Plugin 接口拥有强扩展性,以支持 Mirai Console 统一管理使用其他编程语言编写的插件 (详见进阶章节 扩展 - PluginLoader)。

除非你是在实现新种类插件,否则不要直接实现 Plugin 接口。

插件加载器 - PluginLoader

Mirai Console 支持使用多个插件加载器来加载多种类型插件。每个插件加载器都支持一种类型的插件。

Mirai Console 内置 JvmPluginLoader 以加载 JVM 平台插件(见下文),并允许这些插件注册扩展的插件加载器(见章节 扩展) ,以支持读取其他语言编写的插件并接入 Console 插件管理系统。

总结

Mirai Console 提供抽象的插件及其加载器接口,支持扩展。各类插件行为由其加载器确定。插件作者需要基于特定的插件平台实现,如 Console 内置的 JVM 平台

继续阅读