Easy4Form 2.0.0 版本更新
🚀 主要更新内容
API v2 版本支持
- 全新 API v2 接口:基于最新版 Cumulus 表单接口重新设计
- 向后兼容:保持对 API v1 的完全兼容,现有代码无需修改
- 智能路由:通过版本管理器自动路由到对应版本的实现
新版 Cumulus 表单接口集成
- 更新 Cumulus 依赖:集成最新版 GeyserMC Cumulus 表单库
- 性能优化:利用新版 Cumulus 的性能改进和 bug 修复
- 功能增强:支持新版 Cumulus 的所有新特性
版本兼容性系统
- 多版本代理架构:统一的 API 接口自动适配不同版本
- 兼容性处理器:专门的 V2CompatibilityHandler 处理版本间差异
- 配置化版本选择:通过
config.yml 中的 api-version 配置选择使用的 API 版本
📋 技术改进
架构升级
- 版本管理器:新增
VersionManager 类统一管理 API 版本
- 代理模式:主 API 类作为代理,动态路由到具体版本实现
- 反射机制:使用反射实现版本间的无缝切换
配置增强
api-version: "v2"
migration-warnings: true
代码组织
- 包结构优化:
cn.enderrealm.easy4form.api.v1.* - 旧版 API(已标记为 @Deprecated)
cn.enderrealm.easy4form.api.v2.* - 新版 API
cn.enderrealm.easy4form.api.* - 统一代理接口
cn.enderrealm.easy4form.compatibility.* - 兼容性处理
cn.enderrealm.easy4form.manager.* - 版本管理
🔄 迁移指南
对于现有用户
- 无需修改代码:现有基于 v1 API 的代码继续正常工作
- 推荐升级:在
config.yml 中设置 api-version: "v2" 以获得更好性能
- 迁移警告:系统会提示升级到 v2 版本的建议
对于新项目
- 直接使用 v2:新项目建议直接使用
cn.enderrealm.easy4form.api.v2.* 包
- 或使用代理:使用主包
cn.enderrealm.easy4form.api.* 获得自动版本适配
🛠️ 开发者改进
API 一致性
- 统一接口:v1 和 v2 提供相同的方法签名
- 类型安全:改进的类型检查和转换
- 错误处理:更好的异常处理和错误提示
性能优化
- 缓存机制:代理实例映射缓存,避免重复创建
- 懒加载:按需加载具体版本的实现
- 内存管理:使用 WeakHashMap 避免内存泄漏
📦 依赖更新
- 项目版本:升级到 2.0.0
- Java 版本:继续支持 Java 17+
- Minecraft 版本:支持 1.18.2+
- Floodgate 版本:支持 2.2.0-SNAPSHOT+
🔧 配置文件变更
新增配置选项:
api-version: 选择使用的 API 版本(v1/v2)
migration-warnings: 是否显示迁移警告
📚 文档更新
- 更新 API 文档以反映 v2 版本的变更
- 添加迁移指南和最佳实践
- 完善代码示例和使用说明
注意:此版本完全向后兼容,现有项目可以安全升级而无需修改代码(前提不更新Comulus)。使用代理方法可继续保持强大的兼容性。