基本信息
我的世界Java版本
1.21.3
1.21–1.21.1
1.20.1–1.20.2
1.19.2
1.18.2
平台
Fabric
运行环境
搬运团队
搬运资源声明
对于可进行 JAR 文件搬运的许可证,我们提供站内下载服务;其他资源会跳转到原帖下载。资源更新可能不及时,建议前往资源内提供的原帖链接下载最新版本。
详情信息
许可证 MIT
发布于 2025-01-03
更新于 2026-04-15
更新日志
Easy NPC(1.20.1)版本更新日志
注意事项
本更新日志汇总了主要变更内容。
如需查看完整变更记录,请访问 GitHub 历史提交记录。
⚠️ 重要提示:升级至新版本前,请务必备份您的世界存档及 NPC 数据!
更多迁移说明请参阅 升级指南。
6.12.0
- 修复 #714:针对原版模型,为自定义模型部件列表添加额外校验逻辑。
- 修复 #713:降低日志冗余度——将每个 NPC 的
INFO级别日志降级为DEBUG,并合并重复的警告信息。 - 修复 #711:缩减启动/配置阶段输出的过大日志体积。
- 修复 NBT 校验防护机制,避免在生产环境中进行不必要的缓冲区分配。
- 在
EasyNPCModelManager中新增模型部件名称常量,确保混入(Mixin)代码中统一使用。 - 优化
RenderEntityTypeSupportConfig:增强过滤逻辑,并重构数据结构以提升性能与可维护性。 - 移除会大量输出复杂数据结构的冗长调试日志。
6.11.0
- 修复 #703:解决新自定义图层系统与手部渲染相关的显示问题。
- 修复 #701:为无效交易报价增加额外防护机制与日志记录。
- 修复智能动画在头部位置被修改后无法正常工作的问题。
- 修复头部追踪逻辑:将玩家检测逻辑移回服务端独占执行。
- 优化
CustomLookAtPlayerGoal,更好处理边界情况,减少抖动。 - 修复多普勒(Doppler)NPC 持续保留手中物品的问题。
- 改进
PoseManager的日志输出信息。 - 更新 Logo 设计,采用全新视觉风格。
6.10.0
- 修复 #695:
- 切换至
DEFAULT原版姿势时,清空模型部件的旋转/位置; - 仅当 NPC 处于空闲状态时才应用“锁定旋转”与“姿势动画”;
- 修正根节点(ROOT)旋转轴心点,改用实际包围盒高度而非固定值
0.5f。
- 切换至
- 修复多个目标(Objective)注册问题,包括:
isTargetedPlayer判断逻辑反转;- 离开事件处理器中 UUID 错误;
- 加入/离开时未刷新面向玩家的目标;
- 对离线目标重试失败。
- 修复目标注销后仍保留目标引用的问题。
- 移除加载姿势时自动锁定 ROOT 旋转的行为;现改为由用户手动控制。
- 在高级姿势与自定义姿势配置界面中新增「锁定旋转」复选框。
- 在
ConfigurationMenuHandler中为默认姿势界面添加按模型类型筛选姿势键的功能。 - 新增单元测试,覆盖
CustomPosition、CustomRotation、CustomScale、ModelPose、ModelAnimationBehavior和ModelAnimationData。 - 新增
NPCDataIsolationTestHelper及 Fabric / Forge 平台的游戏测试(Game Test)。 - 将头部水平转向(yaw)最大角度从 60° 提升至 65°。
6.9.0
- 修复 #692、#666:通过缓存与防护机制,防止 NPC 实体数据被重复触发更新。
- 修复 #651、#617:为所有支持的 NPC 类型添加基础自定义姿势。
- 修复 #597:新增多种“逃离”目标(Flee Goal),支持逃离玩家、村民、怪物等。
- 修复姿势加载逻辑,改为直接从模组资源读取,不再复制文件到磁盘。
- 修复实体加入世界时重复调用
saveNPC的问题,增加对已有注册项的检查。 - 新增
/npc despawn <uuid>与/npc spawn <uuid>命令,支持按 UUID 移除/重生 NPC,并可配置移除原因。 - 新增公共 API 类:
ModelPoseAPI:用于程序化控制 NPC 姿势;EasyNPCEntityHandler:用于外部模组管理 NPC 实体。
- 新增所有支持 NPC 类型的姿势数据文件(
.pose)。 - 在基础姿势配置界面中新增「锁定旋转」复选框。
- 新增
MoveToPositionGoal:使 NPC 先移动至指定位置,再执行回调动作。 - 新增
EasyNPCLookControl与EasyNPCBodyRotationControl,尊重用户设定的 ROOT 旋转锁定。 - 在 NPC 实体数据索引中同步支持「所有者变更」与「维度变更」。
- 将
EasyNPCItemAttachmentLayer注入多个实体渲染器中。 - 新增专属「逃离目标(Flee Objective)」配置页,支持设置逃离苦力怕、怪物、生物、玩家、村民及阳光的目标。
- 在跟随目标(Follow Objectives)页中新增
FOLLOW_ITEM目标类型,支持按资源路径(如minecraft:apple)让 NPC 追随物品实体。 - 新增
LookAtEntityByUUIDGoal,并在「注视目标(Look Objectives)」界面中启用「按 UUID 注视实体」与「注视所有者」功能。 - 在
SynchedDataIndex中新增persistent标志,使临时索引(如弩箭充能、模型动画)不再触发脏标记(dirty-save)。 - 在
SlimeBase中新增可配置的customParticlesEnabled标志,供 API 调用方使用。 - 新增
SoundType.PET声音类型,并将CAT_PURR映射至猫形 NPC,丰富驯服类环境音效。 - 将周期性 NPC 保存操作的日志等级从
INFO降为DEBUG。
6.8.3
- 修复 #680:通过升级网络协议版本,强制校验客户端与服务端版本匹配。
- 修复 #679:重置名称标签的位置、旋转与尺寸。
- 修复 #665:为 ROOT 旋转添加多状态滑动支持。
- 修复 #664:新增选项,禁用「跟随鼠标光标」功能,便于精细摆姿。
- 修复 #663:增强对 X 与 Z 轴 ROOT 旋转的支持。
- 修复 #661:新增快捷旋转功能——手持 NPC 魔杖并潜行,即可使 NPC ROOT 朝向玩家旋转。
- 修复移动工具错误触发交互:在交互处理器中增加对移动工具的判断。
- 修复预设物品错误触发交互:在交互处理器中增加对预设物品的判断。
- 修复史莱姆与幽浮(Ghast)的碰撞箱与名称标签位置问题,调整包围盒与眼睛高度计算。
- 修复史莱姆与幽浮 GUI 位置偏移问题,调整偏移值。
6.8.2
- 修复 #677:扩展
SafeMerchantData,新增notifyTrade方法,避免崩溃。 - 新增 NPC 进度系统(Progression Data):基于玩家互动与行为实现 NPC 升级。
- 新增全局 NPC 追踪系统,便于跨世界管理与调试 NPC。
- 在
OriginalModelConfig中新增.withVariantTexture()方法,支持为原版模型使用变体纹理。
6.8.1
- 修复 #676:改用已有的预设辅助方法,而非自定义实现。
6.8.0(新增 API 支持)
- 修复 #667:为非法网络数据包添加警告提示与额外校验。
- 修复马匹生成蛋模型显示异常。
- 修复以下 NPC 类型的姿势支持:悦灵(Allay)、鸡、苦力怕、狐狸、幽浮、马、灾厄村民、铁傀儡、史莱姆、恼鬼(Vex)。
- 新增 NPC 基础类(Base Classes),提升 API 兼容性。
- 新增 NPC 原始类(Raw Classes),支持高级 API 扩展。
- 新增史莱姆与幽浮 NPC 类型。
- 新增「自定义模型 API(Custom Model API)」,简化与其他模组及自定义模型的集成。
- 重构内部数据处理与注册逻辑,提升可维护性与未来扩展能力。
6.7.1
- 修复 #657 与 #656:在客户端增加额外校验,规避原版漏洞。
6.7.0
- 修复 #650:在
setupAnim方法中实现狼的腿部动画。 - 修复 #648:修正
canBeHitByProjectiles的本地化翻译。 - 修复 #645:新增
allowBypassInvulnerability配置项,允许/禁止 NPC 绕过无敌状态。 - 修复删除按钮在宽度较小时仍显示标签的问题。
- 修复上下按钮在某些情况下定位不正确的问题。
- 修复对话与配置 UI 中错误显示名称标签的问题。
- 修复距离触发动作(Distance Action)中多个动作未能正确触发的问题。
- 修复 NPC 预设相关问题。
- 修复猫形与狼形 NPC 的所有者数据不同步问题。
- 新增预设浏览器(Preset Browser),便于快速选择常用 NPC 预设。
- 新增预设
.snbt(文本格式)导出与导入功能,方便分享 NPC 预设。 - 将现有 NPC 预设重构为新
.snbt格式。 - 重构刷怪笼(Spawner)系统,采用新预设格式,提升可维护性与扩展性。
6.6.2
- 修复 #643:重构缩放系统。
- 修复重启/重载后缩放未正确更新碰撞箱与名称标签位置的问题。
- 新增名称标签可见性模式:
MID(中距)与MOUSE_OVER(鼠标悬停),提供更精细的显示控制。 - 新增基于原版队伍(Team)的名称标签可见性支持。
6.6.1
- 修复 #638:重构显示属性(Display Attributes)的内部数据处理逻辑。
6.6.0
- 修复 #634:实现异步纹理加载,并使用专用线程池。
- 修复纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作(Atomic Operations)修复纹理重载保护中的竞态条件。
- 修复远程纹理下载过程中 HTTP 连接的资源泄漏问题。
- 修复 URL 校验重复触发,导致同一纹理被多次并发下载的问题。
- 修复远程图像校验异常处理缺失,避免因非法 URL 导致崩溃。
- 修复 NPC 加载时频繁出现的
defineId called for:警告。 - 重构纹理加载架构,引入多层防御机制与速率限制。
- 重构实体数据注册逻辑,提升可维护性。
- 将数据类迁移为现代 Java 记录(Records),增强不可变性与线程安全性。
- 新增基于
ConcurrentHashMap的线程安全会话服务器防刷机制。 - 新增全面的错误恢复机制,失败时自动重置冷却时间。
- 优化纹理加载:采用双线程池 + 500ms 速率限制。
- 改进异常处理:为
IIOException与FileNotFoundException添加专门捕获块。
6.5.2
- 修复村民职业与工作皮肤显示异常问题。
- 优化 GitHub 工作流,为 Gradle 依赖添加缓存。
- 提升 Gradle 构建速度与清理任务效率。
6.5.1
- 修复 #632:新增
ON_KILL动作类型与对应事件。 - 修复 #629:优化纹理处理性能、缓存策略与内存占用。
- 修复
/kill命令对 NPC 不生效的问题。 - 修复纹理重载保护机制阻止缓存重新加载的问题。
- 修复远程图像校验器中 WebP 格式验证的返回语句缺失 Bug。
- 重构纹理处理逻辑,提升可维护性与扩展性。
- 新增基于时间的重载保护(60 秒),替代永久性阻断机制。
- 新增纹理处理相关单元测试。
- 优化 Gradle 构建任务。
6.5.0
- ⚠️ 移除 Jar-in-Jar 打包方式,以提升模组兼容性与 API 能力。
- 修复 #627:改进剪裁(Scissor)实现,增强与其他模组的兼容性。
- 修复 #625:解决旋转或位移后的模型部件导致生动动画异常的问题。
- 修复缩放模型部件时默认动画被意外取消的问题。
- 新增更精细的姿势动画控制选项:
Smart(智能)、Default(默认)、None(禁用)。
6.4.1
- 修复 #626:优化不同 NPC UUID 下的界面切换逻辑,感谢
Spawnblade提供详细分析与修复建议。
6.4.0
- 修复 #626:增强对话数据校验与错误处理。
- 修复 #623:重构渲染数据与渲染处理逻辑。
- 修复 #622:确保自定义数据能被正确保存与加载。
- 修复「打开对话」动作类型,支持从其他 NPC 触发对话。
- 修复哈希问题:为
ConditionDataSet与ActionDataSet补全equals()与hashCode()方法。 - 新增自定义数据测试物品(Custom Data Test Item),便于 #622 测试与日常开发。
- 优化记录类(Records)并修复潜在的数据缺失问题。
6.3.0
- 将配置 UI 特有组件重构并移出核心模组。
- 修复对话数据:在发送至客户端前先进行过滤。
- 修复对话编辑器布局问题,提升可用性。
- 修复部分对话字段缺少默认值的问题。
- 新增对话优先级(Dialog Priority)支持,控制对话执行顺序。
- 新增对话与记分板动作的条件(Condition)支持。
- 新增对话频率(Frequency)支持,限制对话触发频次。
- 新增支持记分板与条件功能的 NPC 预设。
- 优化对话按钮数据格式,移除冗余字段。
6.2.0
- 修复对话中的字符串注入漏洞。
- 修复部分动作类型缺少本地化翻译的问题。
- 新增记分板动作类型:支持增加、减少、设置记分板数值。
- 新增 NPC 宏命令
@score(...),可在对话中动态显示记分板数值。 - 新增更多单元测试。
- 优化旋转按钮(Spin Button):增加状态指示器,提升易用性。
6.1.2
- 修复容器与菜单同步问题(缺失关闭容器数据包)。
- 修复某些情况下关闭按钮失效的问题。
- 修复界面切换时鼠标光标异常跳动的问题。
- 修复翻译文件,移除重复与已弃用条目。
- 将 Easy NPC 魔杖移至现有核心物品标签页,不再新建标签页。
- 新增猫形 NPC 姿势支持(除尾巴外所有模型部件)。
- 优化
EasyNPCWand发光效果性能:仅在需要时启用。 - 优化自定义实体检测逻辑,排除非生物实体(如展示框、标记实体、投掷物、刷怪笼)。
- 优化猫形变体(Cat Variant)处理逻辑。
6.1.1
- 修复 #612:重新校验实体类型。
- 修复 #610:强制同步特定模型的帽子与头部图层。
- 修复兽人(Orc)纹理显示异常。
- 优化自定义模型支持与性能:将相关逻辑迁移至客户端独占执行。
- 优化玩家 → UUID 映射缓存,提升皮肤加载效率。
- 将更换模型命令与逻辑限制为仅适用于多普勒(Doppler)NPC。
6.1.0 ✨
这是一个重大版本更新!升级前请务必备份您的世界存档与 NPC 数据!
本版本包含大量改进、性能优化与内部重构,与早期版本不完全兼容。
⚠️ 破坏性变更(Breaking Changes)
- 6.1.0 之前创建的 NPC 及其配置数据可能无法正常加载,或需手动调整。
- 内部数据格式与部分行为已被重构,以支持新的使用场景。
🧩 全新模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC:整合版,包含 Core 与 Configuration UI,开箱即用。
- Easy NPC: Core:轻量级运行时与 NPC 核心逻辑,依赖极少。适用于服务器、整合包与开发者。
- Easy NPC: Configuration UI:独立配置界面,用于创建与编辑 NPC。仅需安装在需要 UI 的客户端上。
🎯 为何如此设计?
- 服务器与整合包可仅部署 Core 模组,实现更精简的部署方案;
- 当无需 UI 时,显著降低内存占用与加载时间;
- 分离 UI 与核心逻辑,加快开发与测试迭代速度。



