本帖最后由 wujipohh 于 2020-4-3 18:35 编辑




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多线程驱动事件系统
  • Kotlin 协程 实现

    • 使用 Kotlin 协程 完成高效简洁的多线程事件驱动

  • AsyncTask 实现

    • 使用原生AsyncTask 把每个事件触发当作任务进行分发,Nukkit并不需要获取事件结束后的返回。所以完全是可以进行多线程驱动,大幅度提升插件使用效率

  • 但需要注意的是,多线程开发中不可避免的会遇到并发问题,Nukkit 没有自带解决方案,需要自行加锁解决


监听处理管道
  • 将事件处理模块化为每个步骤的监听管道,每个管道处理完后的数据可以传递到下一层监听管道,并且处理流程模块化,支持热插拔,支持异步(也可同步)。


集成接口,自由模块化启动
  • 权限组

    • 简化操作流程

  • 命令

    • 简化操作流程

  • 配置

    • 简化操作流程

  • 经济

    • 集成

  • GUI

    • 集成

  • 底部Tip 管理

    • 综合管理外部接口

  • 聊天Format 管理

    • 综合管理外部接口

  • 顶部Bossbar 综合管理

    • 综合管理外部接口

  • 右侧记分板 综合管理

    • 综合管理外部接口

  • 更多····

    • 支持任意的其他插件接入 EasyAPI 并集成开发


集成模块,自由模块化启动
  • 底部Tip 综合管理
  • 聊天Format 综合管理
  • 顶部Bossbar 综合管理
  • 右侧记分板 综合管理
  • 更多···


    • 支持任意插件接入 EasyAPI 并集成模块



    EasyAPI - 插件开发教程 全程带详细步骤 + 图文 + 代码解释



实例
核心逻辑 50 行左右, 高效制作插件





更新记录



最新版本


一些题外话






安装
*安装插件
    * 丢入你的Plugins文件夹,依赖于 KotlinLib 。
    * 详细: 如何安装 图文教程

* 更新记录
    * 版本号迭代更新记录
    * 每次提交更新记录
    * 项目计划看板