Mirai Console Backend - Plugins

Mirai Console (简称 Console) 运行在 JVMopen in new window,支持使用 Kotlinopen in new windowJavaopen in new window 等 JVM 语言编写的插件。

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

通用的插件接口 - Pluginopen in new window

所有 Console 插件都必须直接或间接地实现 Pluginopen in new window 接口。

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

基础的 Pluginopen in new window 很通用,它只拥有很少的成员:

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

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

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

插件加载器 - PluginLoaderopen in new window

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

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

总结

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

继续阅读