EasyAPI 接口, 兼容, 模块化, 样样 Easy 如其名 W系列 | 交流群: 807182388 更新时间:2020年3月28日 (具体以 Github 最新 Commit 为准) 注意: 本贴更新速度相较于 Github 可能会严重滞后, 如果本帖没有更新, 请先查看 Github 中的 Release(发布版本)
* 简介:
* 你可以通过 EasyAPI 以高效简洁的形式, 创造插件, 让插件创造更简单, 更高效
* 理念: 让插件只关注核心逻辑, 而非繁杂的 Nukkit 接口.
* 多线程驱动事件系统
* 集成大量 API 接口, 并且支持进行兼容性检查, 自适应使用对应兼容的接口
* 模块化插件, 提高可维护性. 所有的集成 API 都可以进行二次开发.
注意:EasyAPI 使用 GPLv3 协议进行授权, 进行二次开发必须开源, 禁止非授权转载.
* 功能:
* EasyAPI 自带功能仅有一示例模块, ChatNameTagFormatter, 用于接入 Multipass 或 LuckPerms 等权限组插件. 可以自动格式化玩家NameTag(玩家头上那个标识), 聊天格式.
README 目前插件在高速迭代,所有的 API 可能在没有预先通知的情况下被删除或更改
使用 EasyAPI 极大缩减您的开发时间, 减少浪费在不必要逻辑上的时间.
EasyAPI 内部集成的 SimpleCodecEasyConfig 简易编码配置 和 ReflectionCodec 编码器, 配合使用, 可以直接把数据类型转化编解码为配置可以理解的类型, 反之亦然, 可以直接从配置中读取并自动转换为目标对象. 极大降低开发难度和缩减开发周期. EasyAPI 内部集成的 ConfigGUI 可以使得上述配置直接转化为玩家 GUI, 在线使用原生 GUI 编辑插件配置. (和 WMagicGun枪械插件一致) EasyAPI 内部集成的命令模块能帮助您轻松写出 主命令+子命令 模式下的玩家命令, 自动生成 Help, 参数映射. 如果您通过 EasyAPI 来进行玩家屏幕展示功能(如 Popup, Tip)等, EasyAPI 可以自动融合, 通过优先级排序 , 交替出现. 防止多个插件占用 Popup 或 Tip 造成的屏幕底部文字高速闪烁或冲突. EasyAPI 集成的权限组和经济 API, 能找到服务器装了的任何一种经济插件进行适配, 比如一个服务器用 Ecokkit 经济插件, 另一个服务器用 EconomyAPI, 那么每个插件单独适配时就十分麻烦, EasyAPI 可以帮你检查兼容性, 并智能使用兼容插件.
使用方式模块化插件
- 支持热插拔
- 模块随时拆卸安装,帮助插件模块化
- 参考实践:在反作弊中,我们需要将每个作弊检测模块进行抽象化,例如 Speed 加速检查中,我们需要监听玩家的移动事件,并记录相当多的数据,还有相关自定义配置。如果没有模块化集成API,这一切将会变的非常复杂。而且当某些服务器不需要这一种检测模式,或者其他检测模式时,如果没有模块化,则很难实现配置的模块化精细化。
直接调用API- 便于调试和小型插件直接使用,从一定程度上减少更多流程
特性更简单(简明)的API多线程驱动事件系统监听处理管道- 将事件处理模块化为每个步骤的监听管道,每个管道处理完后的数据可以传递到下一层监听管道,并且处理流程模块化,支持热插拔,支持异步(也可同步)。
集成接口,自由模块化启动权限组
命令
配置
经济
GUI
底部Tip 管理
聊天Format 管理
顶部Bossbar 综合管理
右侧记分板 综合管理
更多····
- 支持任意的其他插件接入 EasyAPI 并集成开发
集成模块,自由模块化启动底部Tip 综合管理 聊天Format 综合管理 顶部Bossbar 综合管理 右侧记分板 综合管理 更多···
EasyAPI - 插件开发教程 全程带详细步骤 + 图文 + 代码解释
实例
更新记录
1.1.9 修复无法加载的严重问题 1.1.8 (包含API更改) 修复ChatNameTag模块的兼容性问题, ReflectionCodec 反射编码器支持深度编解码 (例如HashMap<String, List<xxxData>>可以被解析), 修复配置默认值直接赋值而没有clone的问题 (使用Gson进行魔法clone) 1.1.7 (包含API更改) 彻底修复命令参数提醒 1.1.6 (包含API更改) 修复命令参数提示, 添加 bStats 插件统计支持支持 1.1.5 添加简易计时器模块和简易异步(依附于EasyAPI而非插件本体) 和 添加模块开关(服主可以在配置中选择模块开关) 1.1.3 规避Java8关键字 `default` 方便 Java 开发者调用 1.1.1 修复配置decode()解码时出错 1.1.0 添加 Task 计时器相关API, 修复 ScreenShow 的bug 1.0.0 插件完成 |
最新版本
一些题外话
本人开发 Nukkit 已经有将近 3 年了, 从刚刚起步到自己的小服, 再到 EaseCation, 这个插件是我 3 年开发生涯所有精华的浓缩, 毫无保留的全部开源. 这可能是我对这个社区能做的最后有价值的贡献吧 |
安装 *安装插件
* 丢入你的Plugins文件夹,依赖于 KotlinLib 。
* 详细: 如何安装 图文教程
* 更新记录
* 版本号迭代更新记录
* 每次提交更新记录
* 项目计划看板 |