Skip to content

HNCore v1.3.0

  • 发布日期:2026-04-15
  • 发布提交371d7de
  • 版本定位:从臃肿主类模式迁移到注解驱动的生命周期管理,为下游插件提供可复用的编排基础设施

版本定位

v1.3.0 这一轮的核心目标是 架构重构,而不是功能新增。

v1.1.0 补齐公共基础设施后,HNCore 主类承担了所有服务的编排和透传职责(409 行代码中 220 行是纯 getter 透传),这导致:

  • 每次新增服务都要修改主类
  • 下游插件无法复用 HNCore 的编排能力
  • 生命周期管理逻辑散落在主类各处

这一轮通过引入 注解驱动的生命周期管理系统,把主类从"服务容器 + 编排器"精简为"启动入口",同时把编排能力开放给下游插件复用。

本次重点新增 / 调整

1. 注解驱动的生命周期管理系统

来源提交:371d7de(2026-04-15,架构重构:引入注解驱动生命周期管理

新增四个核心组件:

  • @Awake:标记生命周期方法(INIT/LOAD/ENABLE/ACTIVE/DISABLE),支持优先级控制
  • @AutoListener:标记事件监听方法,自动注册到 Bukkit 事件系统
  • @AutoSchedule:标记定时任务方法,支持延迟、周期、异步配置
  • PluginScanner:核心扫描和驱动引擎,负责发现注解并按优先级驱动执行

这套系统已纳入 hncore-api 发布范围,下游插件可以直接依赖使用。

2. 主类精简与服务注册表解耦

来源提交:371d7de(2026-04-15,架构重构:引入注解驱动生命周期管理

  • 新增 HNCoreServices 静态注册表:各组件自注册,主类 getter 从注册表取值
  • 新增 HNCoreBootstrap:所有初始化逻辑用 @Awake 标记,按 priority 顺序驱动
  • 主类精简:
    • onEnable 从 33 行精简为 4 行
    • onDisable 从 17 行精简为 2 行
    • 不再承担服务编排职责,只做启动入口

3. 下游插件可复用的编排能力

这一轮最重要的变化不是 HNCore 自己用了什么,而是 下游插件现在可以复用同一套编排基础设施

参考 NeigeItems、NuStarParty、Baikiruto 等项目的实践,主类不应该做事,只做编排。现在 HNCore 把这套编排能力开放出来了:

  • 下游插件可以用 @Awake 管理自己的生命周期
  • 下游插件可以用 @AutoListener 自动注册事件监听
  • 下游插件可以用 @AutoSchedule 自动注册定时任务
  • 下游插件可以用 PluginScanner 驱动自己的组件扫描

下游接入建议

如果你是 HN 系列下游插件开发者,建议优先围绕下面这套编排基础设施实现业务:

  • 生命周期管理@AwakePluginScanner
  • 事件监听@AutoListener
  • 定时任务@AutoSchedule
  • 服务注册:参考 HNCoreServices 的静态注册表模式

升级提醒

  • 如果你是 服主,这次升级是架构重构,功能行为不变,可以平滑升级
  • 如果你是 下游模块开发者,建议评估是否迁移到 HNCore 的注解驱动生命周期管理,避免主类臃肿
  • 如果你的现有模块已经自带一套 生命周期编排逻辑,升级到这轮后建议评估是否逐步迁移到 HNCore 的统一协议
  • 如果你依赖 HNCore 主类的 getter 方法,升级后这些方法仍然保留,但内部实现已改为从 HNCoreServices 注册表取值

升级后建议检查

建议升级到 v1.3.0 后优先做下面几类回归:

  1. 核心状态检查

    • 执行 /hncore status
    • 确认核心服务、共享存储与依赖状态正常
  2. 生命周期检查

    • 检查插件启动、重载、关闭流程是否正常
    • 检查事件监听是否正常触发
    • 检查定时任务是否正常执行
  3. 下游插件兼容性检查

    • 检查依赖 HNCore 的下游插件是否正常启动
    • 检查下游插件调用 HNCore API 是否正常
  4. 二开接入检查

HN 系列插件文档