本帖最后由 azbh111 于 2020-7-4 10:50 编辑

背景(SpringBootPlugin简称SBP)

    相信各位开发者或多或少遇到过以下情况(当然,腐竹也可以装这个插件使用汉化和DevTools功能)
    每写一个监听器,都要注册一次(不爽,就不能自动嘛,我要自动化。)
    每个新的指令,都要在plugin.yml中声明,然后在代码里一堆if-else解析指令,一个方法几百行。过段时间来看,都看不懂解析指令的代码了(简直抓狂。。。我要自动化)
    处理玩家指令,各种数字解析,异常判断,权限控制,异步,并发等等(OMG!我要自动化)
    总要去写一个配置文件,然后用代码一项一项的读取,还要保证配置文件和代码的一致性,还要考虑配置文件乱码问题(神烦有木有。。。我要自动化啊)
    需要用数据库时,手动创建连接,传递sql参数,解析sql结果,释放连接(简直原始人有木有。。能不能自动啊)
    在服务端内,读取不到物品的汉化名(比如以前大名鼎鼎的QS商店,牌子上的物品是英文名)
    想用NMS时,却苦于多版本兼容很困难,反射又很麻烦,望而却步
    当插件逐渐壮大起来后,主类越来越大,启动逻辑越来越多,维护起来越来越难
    当然,还有很多。。

以上这些问题,都是本人亲身经历
    于是在经历了PluginLoader到PluginBoot的迭代,最后本插件SpringBootPlugin诞生了。
    SpringBootPlugin基于SpringBoot(百度百科/中文索引),拥有其全部特性。在SpringBoot基础上,适配了Bukkit环境,对许多常用的NMS接口做了全版本封装,并提供了许多有助于开发的工具类,帮助腐竹进行快速开发,并构建可维护性强的插件!


基于SBP开发的插件



插件功能

1. 拥有SpringBoot全部特性,有兴百度自行了解

2. 自动测监听器
这里以GuiProtector的核心代码为例

3. 自动注册指令(无需再plugin.yml中声明)
这里展示一个只有服务端版>=1.9时,才会注的指令

4.强大的指令参数解析
这里以我自己服自用的rpg指令为例(手动解析我可能要疯)
/frpg rangeAttack fan <攻击者> <范围> <角度> <高度> <高度偏移> <伤害> [--sound=<声音>,<声音类别>,<音量>,<角度>] [--effect=<粒子特效>,<data>,<能见度>]

5. 配置文件注入(无需写配置文件,更无需手动读取配置文件)
展示一个完整的配置文件
除了截图内的东西,不需要在多谢任何代码或yml

6. 强大的定时任务

7. 服务端汉化功能 (汉化后许多会展示物品名字的插件,就会展示物品的中文名了,具体语言可在配置文件中修改)
服务端汉化说明
这里展示一份1.12的原版汉化文件 ->
本人收集的许多mod汉化文件 -> (你当然可以把它们全部放到plugins/SpringBootPlugin/lang 文件夹下)

8. 自带一个DevTools模块,方便腐竹和开发者对物品/方块/事件/ProtocolLib数据包等进行调试

8. 集成Druid连接池和Mybatis框架,操作数据库so easy!支持MysqlH2数据库
这里列举几个Taobao操作数据库的例子

9. 全版本兼容:基于SBP的插件,可直使用NMS和CB接口,SBP在运行时会将其兼容到当前服务端版本。
以SBP的ItemStackUtils中的toNBTTagCompound接口为例
此接口使用了1.7的nms,却可以在1.7-1.14所有版本中运行
跨版本原理(自定义ClassLoader,ASM,Remap)

10.封装大量常用好用的操作,其中不乏使用NMS实现的
11. JavaScript脚本支持

12. 太多了,说不完了。。。。


自带指令

devtools (需要op权限)
springboot (需要op权限)



安装

安装SBP
SpringBootPlugin-x.x.x.x.jar复制到服务端 plugins 目录下
启动服务器,将自动生成插件配置文件: plugins/SpringBootPlugin/config.conf
---------------------------------------------------------------------------------------------------------------------------------------------
安装SBP插件(基于SBP开发的插件,我称之为SBP插件)
将SBP插件复制到 plugins/SpringBootPlugin/plugins 端目录下
启动服务器,将自动生成插件的配置文件
---------------------------------------------------------------------------------------------------------------------------------------------
SBP目录结构
plugins/SpringBootPlugin/config.conf: SBP的配置文件
plugins/SpringBootPlugin/plugins: 放置SBP插件
plugins/SpringBootPlugin/data: 放置/springboot item 指令的数据文件
plugins/SpringBootPlugin/javascript: 放置js脚本,可用JSUtils加载
plugins/SpringBootPlugin/lang: 放置汉化文件
data/SpringBoot: 若使用h2作为数据库,数据库文件会存放于此



兼容性

兼容的核心有:Cauldron/KCauldron/Thermos/Uranium/Spigot/CatServer/Paper/Mohist
兼容的版本跨度为:1.7-1.14

Cauldron 、KCauldron、Thermos这几个端不支持java8
需要更换SpecialSourc才能使用本插件
戳:

注:若SBP启动失败,会主动关闭服务器,防止发生不必要的损失
后续将计划将是否关闭服务器改为可配置


更新日志







开发教程  


QQ群:628496236

本插件所用代码部分来自spring-boot开源项目

[groupid=1330]PluginsCDTribe[/groupid]