LogoArcartX Doc

概览

Blink —— 面向 Kotlin 的 Spigot/Paper 插件开发框架,注解驱动、编译期生成。

Blink 采用 Apache-2.0 协议开源,是 ArcartX 生态插件的开发底座。开源地址:github.com/17Artist/Blink

推荐阅读路径

按顺序读,读完即可写出并发布第一个插件:

  1. 介绍与设计理念 —— 建立「编译期生成 + 注解驱动」的心智模型。
  2. 快速开始与 blink{} 配置 —— 配环境、写两个 Gradle 脚本、逐字段读懂 blink { }
  3. 生命周期 @Awake —— 四个阶段的触发时机与 priority 排序。
  4. 事件 @AutoListener —— 把方法变成 Bukkit 监听器。
  5. 命令 —— 链式 DSL + 注解构建命令、子命令、Tab 补全。
  6. 配置 —— 用 var 字段 + 注解声明 YAML 配置。
  7. 日志 —— BlinkLog 分级配色与品牌前缀。
  8. 构建与发布 —— 产出 -all.jar 并理解版本号来源。

进阶路线(中间件与发布加固)

  1. Aria 脚本引擎 —— enableAria 与共享宿主 BlinkAriaHost
  2. Asteroid NMS —— enableAsteroid 跨版本 NMS 操作与共享宿主。
  3. Proteus 混淆 —— obfuscate=true 的一键混淆方案与定制。

完整目录

编号篇目一句话简介
01介绍与设计理念Blink 是什么、为什么选择编译期字节码生成而非运行时反射,以及三个模块的职责划分。
02快速开始与 blink 配置从环境要求到两个 Gradle 脚本模板,逐字段讲解 blink { } DSL,并写出第一个能加载的插件。
03生命周期 @Awake@Awake 的函数约束、LOAD/ENABLE/ACTIVE/DISABLE 四阶段触发时机与 priority 排序。
04事件 @AutoListener@AutoListener 声明监听器、签名硬约束、priority/ignoreCancelled,以及 EventManager 动态监听。
05命令BlinkCommand 链式 DSL 与 @SubCommand 注解风格:参数声明、SenderType、CommandContext、Tab 补全、分组。
06配置BlinkConfig 子类 + @Comment/@ConfigKey/@Ignore 描述 YAML,含 Section 嵌套、动态条目与多文件目录。
07日志BlinkLog 五个分级方法、输出拼装规则、logPrefix 自定义前缀与 ArcartX 品牌前缀规范。
08Aria 脚本引擎enableAria 在构建期/运行期做了什么、BlinkAriaHost 共享宿主流程,以及直接用 Aria.* 执行脚本。
09Asteroid NMSenableAsteroid 共享宿主模型 + AsteroidAPI 完整参考:实体/坐骑、数据包、ItemTag、属性、实体 NMS、AI、序列化、头颅、发光、FakeOp、Folia 调度。
10Proteus 混淆obfuscate=true 自动配置的全部策略、入口类 keep 与运行时 exclude,以及如何在其上做定制。
11构建与发布产出 -all.jar 的命令与产物结构、blinkGenerate 任务依赖链、版本号来源,以及框架自身的发布流程。

约定速记

  • 不写主类,也不写 plugin.yml:在 object 单例或顶层函数上打注解即可,入口类与 plugin.yml 编译期生成。
  • 三件事由 packageName 一处决定:生成入口类的包、Shadow relocate 目标、Proteus defaultPackage,建议与 group 一致。
  • 运行时不打包的东西:Kotlin stdlib(由 KotlinBootstrap 动态加载)、Aria / Asteroid(由各自 SharedHost 部署为全 JVM 共享插件)。
  • 部署产物为 build/libs/<name>-<version>-all.jar(开混淆则跑 gradle obfuscate)。

On this page