本帖最后由 xiaolu550 于 2019-5-6 17:50 编辑


NUKKIT MariataFramework 解耦框架
mariata-framework是由noyark-system开发的nukkit框架,它提供了新的插件结构,并且可以衔接nukkit插件,提供了统一的前置插件加载战略,并且可以自动加载监听器和指令(即继承了command类或者实现Listener接口)

作者qq: [qq]843983728[/qq]

  1. 使用该框架后,如果使用框架提供的全新的插件结构,监听器(实现Listener接口)和命令(继承Command父类)会被框架默认为注册对象,会根据指定的根包,对于下级包及本级包和下下级包和下下下...级包中的监听器和命令进行自动注册
复制代码

解耦: 这里指将主类与注册类剥离开,使得它们之间完全独立
容器: 这里指该框架作为插件的容器而出现,注意的是,该框架不会提供api

另外mariata框架支持了全新的插件结构,文件目录是在plugins/mariataframework/plugin/下
将组建的jar包部署在这里即可

jar包结构中,不需要plugin.yml,只需要mariata.oml文件
  1. 具体使用参见github
复制代码
oaml的语法结构: https://github.com/noyark-system/noyark_oaml_java
github: https://github.com/MagicLu550/nukkit_mariataframework

其他功能将陆续更新,这是第三个测试版本

顺便我这里提供一下nukkit的maven服务器。我的代码使用了自己的maven
  1. maven参见github的README
复制代码
除了plugin.yml外,mariata框架插件的项目结构基本一样,这里建议使用maven来构建项目

设置前置nukkit插件: 只需要在mariataSet.yml中添加startbefore字段即可

V0.7.1支持中枢方法


- getReflectLoader方法

规定:使用该PluginBase作为主类的插件必须使用mariata.oml

自定义中枢方法的使用
//this为继承MariataPluginBase的主类

this.getReflectLoader(this,(obj,clz)->{
//对象处理
if(obj instanceof xxx){
对象的处理
}
},new String[]{根包名});
使用该方法后,所有的对象都会在这里被加载,并且在lambada表达式可以对全部对象加载
如:处理全部继承AAA类的对象
this.getReflectLoader(this,(obj,clz)->{
//对象处理
if(obj instanceof AAA){

}
},new String[]{根包名});



framework.jar

344.95 KB, 下载次数: 1

MariataFramework

framework.jar

350.9 KB, 下载次数: 0

MariataFramework 最新