[MD]
- 移除启动阶段的过早 CE 引用校验,动态监听官方 CraftEngineReloadEvent,等物品注册表完成后再校验。
- 兼容 YiyunCEskin 晚于 CraftEngine 启动、CraftEngine 热重载以及旧版 CE 没有官方事件的场景。
- CE 注册表就绪前,/yskin create --target 的存在性检查保守放行,避免初始化竞态再次误判。
- 存在性检查改为优先调用 CraftEngineItems.byId() 或 getItemDefinition(),不再通过创建物品判断。
- CE 重载后自动清除皮肤源物品、CE 源物品和 GUI 展示物品缓存,之前缓存的 null 不会永久残留。
- 修复 ce-tags 判断,改为对玩家手中的真实包装物品调用 hasPluginTag(),并兼容原版标签。
- 修复清除 CE customId 的行为。现在会删除 craftengine:id,不再错误写入 minecraft:air。
- 优先使用 BukkitAdaptor.adapt(ItemStack) 包装物品,减少对 CraftItemStack/NMS handle 的依赖。
- CeEquipModifier 已从 NMS 私有字段和混淆方法迁移到 Paper 公开 EquippableComponent API,并保留旧版 PDC 备份格式的恢复兼容。
- 构建依赖升级到 CraftEngine 26.7
- config.yml 的 auto-reload 已补充中文注释,说明 CE 重载后会清理缓存并重新校验引用。
- 引用确实缺失时,汇总日志改为“当前无法由注册表解析”,不再误导为相关皮肤必然不可用。
[/MD]