[失踪人口回归]Nukkit-MariataFramework解耦容器框架

Plugins [失踪人口回归]Nukkit-MariataFramework解耦容器框架 2019050901

Source of resources
Original
Copyright link
#
API
1.0.8
Language
Chinese(Simplified)
Mariata框架基于nukkit的内部容器
[LINE][/LINE]


mariata框架目前提供了
@ListenerHandler
@CommandHandler
两个注解
第一个注解可有可没有,只要实现了Listener接口即可,框架会自动注册监听器
第二个注解是关于命令的注解,目前处于测试过程,计划是自动注册命令

以上部分已经淘汰,在0.3版本彻底替换掉了


2019058后版本号将使用日期和日更新次数

201905803后提供了两个注解

@FallBackPrefix
@StartNow

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

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

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

添加了depend文件夹,可以为framework加载其的前置插件

如果要让一个Task启动,可以在这个Task类中添加startNow注解即可,就会被框架自动加载启动

另外开始支持plugin.yml普通插件

jar包结构中,不需要plugin.yml,只需要mariata.oml文件

mariata.oml文件的配置格式:

YAML:
?encoding: utf-8 version: 1.0.0?

name: 插件名称

package: 根目录包
#(如net.noyark.oaml包,则只填写net即可,
#框架会根据根包目录扫描下级目录包括本级目录的全部监听器和命令,
#如果是多个根,可以使用数组[根1,根2...])

main: 主类 继承PluginBase的类


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

顺便我这里提供一下nukkit的maven服务器。我的代码使用了自己的maven

XML:
 <dependencies>
     
         <dependency>
            <groupId>cn.nukkit</groupId>
            <artifactId>nukkit</artifactId>
            <version>1.0</version>
        </dependency>

    </dependencies>
    <repositories>
        <repository>
            <id>nexus</id>
            <name>Team Neux Repository</name><url>http://www.noyark.net:8081/nexus/content/groups/public/</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <name>Team Neux Repository</name>
            <url>http://www.noyark.net:8081/nexus/content/groups/public/</url>
        </pluginRepository>
    </pluginRepositories>

除了plugin.yml外,mariata框架插件的项目结构基本一样,这里建议使用maven来构建项目

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

- 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[]{根包名});
  • Funny
Reactions: YYT
Author
MagicLu
Downloads
258
Views
859
First release
Last update
Rating
5.00 star(s) 4 ratings

More resources from MagicLu

Share this resource

Latest updates

  1. fixed bug

    fixed bug 强烈推荐将该框架配合YUPI使用
  2. 添加注解FallBackPrefix

    可以通过注解来设置指令的fallbackprefix
  3. new annotation

    更新了startNow注解,取消了字段

Latest reviews

支持一下
MagicLu
MagicLu
谢谢
支持..
MagicLu
MagicLu
谢谢
啊啊啊老卢我不爱你但是留个名
MagicLu
MagicLu
嘤嘤嘤,但是我爱你啊
啊啊啊啊啊啊啊啊老卢我爱你我是你的fans啊啊啊啊啊啊啊啊我要和你 一 起 睡 觉 !♂