开放接口¶
开放接口一般用于模块开发,在不同插件之间传递数据、执行方法。TabooLib 中的 Kether 便是基于开放接口。
顶级函数¶
/**
* 获取当前服务端中运行的所有开放接口
*/
fun getOpenContainers(): List<OpenContainer>
/**
* 获取特定名称的开放接口
*/
fun getOpenContainer(name: String): OpenContainer?
注册开放接口¶
用于接收开放接口调用请求,依赖 @Awake
注解自动注册。
@Awake
object MyListener : OpenListener {
override fun call(name: String, data: Array<Any>): OpenResult {
return OpenResult.failed()
}
}
使用开放接口¶
代码节选自 kether
模块。
getOpenContainers().forEach {
it.call(StandardChannel.REMOTE_ADD_ACTION, arrayOf(pluginId, annotation.value, annotation.namespace))
}