基本信息
我的世界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.21.1) 更新日志
注意
此更新日志包含的是变更摘要。 完整更新日志请前往 GitHub 历史记录 查看。
注意:在更新到新版本之前,请务必备份你的世界 / NPC! 更多信息请查看升级指南。
6.11.1
- 通过改进可恢复交易数据的向后兼容解析,修复了 #710。
6.11.0
- 修复了 #703:新的自定义图层系统与手部渲染导致的渲染问题。
- 通过为无效交易报价添加额外保护与日志,修复了 #701。
- 修复了修改头部位置后智能动画无法正常工作的问题。
- 通过将玩家检测移回仅服务端执行,修复了头部追踪问题。
- 修复了
CustomLookAtPlayerGoal,以更好地处理边缘情况并减少抖动。 - 修复了 Doppler NPC 会保留其手部容器物品的问题。
- 改进了 PoseManager 的日志信息。
- 将徽标更新为新设计。
6.10.0
- 通过为第三方实体创建添加 try-catch,修复了 #698。
- 通过在切换到
DEFAULT原版姿势时清除模型部件旋转/位置,修复了 #695。 - 通过仅在 NPC 空闲时应用锁定旋转与姿势动画,修复了 #695。
- 通过将根旋转支点修正为使用实际碰撞箱高度而非 0.5f,修复了 #695。
- 修复了多个目标注册问题,包括反向的
isTargetedPlayer检查、离开处理器中的错误 UUID、加入/离开时缺失的面向玩家刷新,以及对离线目标的重试。 - 修复了在目标取消注册后仍保留目标引用的问题。
- 移除了加载姿势时对 ROOT 旋转的自动锁定;根部锁定现由用户控制。
- 在高级和自定义姿势配置界面中添加了锁定旋转复选框。
- 在默认姿势界面中,为
ConfigurationMenuHandler添加了按模型筛选姿势键的功能。 - 为
CustomPosition、CustomRotation、CustomScale、ModelPose、ModelAnimationBehavior和ModelAnimationData添加了单元测试。 - 添加了
NPCDataIsolationTestHelper以及 Fabric 和 Forge 的游戏测试。 - 将最大头部偏航范围从 60° 提高到 65°。
6.9.0
- 通过添加缓存和保护措施以防止 NPC 实体数据更新被重复触发,修复了 #692、#666。
- 通过为所有受支持的 NPC 类型添加基础自定义姿势,修复了 #651、#617。
- 通过添加额外的逃跑目标以逃离玩家、村民、怪物等,修复了 #597。
- 修复了姿势加载逻辑,改为直接从模组资源读取,而不是将文件复制到磁盘。
- 通过先检查现有注册表条目,修复了实体加入时重复调用
saveNPC的问题。 - 添加了
despawn和spawn命令,可通过 UUID 移除并重新生成 NPC,并支持可配置的移除原因。 - 添加了
ModelPoseAPI和EasyNPCEntityHandler公共 API 类,用于从外部模组以编程方式控制 NPC 姿势和管理 NPC。 - 为所有受支持的 NPC 类型添加了姿势数据文件。
- 在基础姿势配置界面中添加了锁定旋转复选框。
- 添加了
MoveToPositionGoal,可让 NPC 在执行回调操作前先移动到指定位置。 - 添加了
EasyNPCLookControl和EasyNPCBodyRotationControl,以遵循已锁定的根旋转。 - 向 NPC 实体数据索引中添加了同步的所有者变更和维度变更。
- 将 EasyNPCItemAttachmentLayer 添加到了多个实体渲染器中。
- 添加了专用的
Flee Objective配置标签页,包含逃离苦力怕、怪物、生物、玩家、村民和太阳的目标。 - 在跟随目标标签页中添加了
FOLLOW_ITEM目标,使 NPC 可按资源位置跟随物品实体(例如minecraft:apple)。 - 添加了
LookAtEntityByUUIDGoal,并在观察目标界面中启用了按 UUID 观察实体和观察所有者目标。 - 为
SynchedDataIndex添加了persistent标志,使临时索引(如弩蓄力、模型动画)不再触发脏保存标记。 - 为 API 使用方在
SlimeBase中添加了可配置的customParticlesEnabled标志。 - 添加了
SoundType.PET,并将CAT_PURR映射到猫 NPC,以丰富驯服环境音种类。 - 将定期 NPC 保存操作的日志详细程度从 INFO 降低为 DEBUG。
6.8.3
- 通过升级网络协议版本来强制处理版本不匹配问题,修复了 #680。
- 通过重置名称标签的位置、旋转和大小,修复了 #679。
- 通过为根旋转添加多状态滑块,修复了 #665。
- 通过添加可禁用鼠标光标跟随的选项,修复了 #664,以便更轻松地摆姿势。
- 通过改进对 X 和 Z 根旋转的支持,修复了 #663。
- 通过添加快捷旋转功能,修复了 #661:使用 NPC 魔杖并对 NPC 潜行时,可将根部旋转为朝向玩家。
- 通过在交互处理器中添加对移动工具的检查,修复了移动工具错误触发交互的问题。
- 通过在交互处理器中添加对预设物品的检查,修复了预设物品错误触发交互的问题。
- 通过调整碰撞箱和眼高计算,修复了史莱姆和恶魂的碰撞箱与名称标签位置问题。
- 通过调整偏移值,修复了史莱姆和恶魂的 GUI 位置问题。
6.8.2
- 通过为
SafeMerchantData扩展 notifyTrade 以避免崩溃,修复了 #677。 - 添加了进度数据支持,可根据玩家交互和行为让 NPC 升级。
- 添加了全局 NPC 跟踪系统,以便更好地管理和调试世界中的 NPC。
- 为
OriginalModelConfig.withVariantTexture()添加了选项,以允许在原始模型上使用变种纹理。
6.8.1
- 通过使用现有的预设辅助方法而不是自定义方法,修复了 #676。
6.8.0(添加 API 支持)
- 通过为无效网络数据包添加警告消息和额外检查,修复了 #667。
- 修复了马生成蛋模型。
- 修复了悦灵、鸡、苦力怕、狐狸、恶魂、马、卫道士、铁傀儡、史莱姆和恼鬼的姿势支持。
- 添加了 NPC 基础类,以提供更好的 API 支持。
- 添加了 NPC 原始类,以提供高级 API 支持。
- 添加了史莱姆和恶魂 NPC 类型。
- 添加了自定义模型 API,以便更轻松地与其他模组和自定义模型集成。
- 重构了内部数据处理和注册逻辑,以提高可维护性并为未来改进做准备。
6.7.1
- 通过为原版 bug 添加额外的客户端检查,修复了 #657 和 #656。
6.7.0
- 通过在 setupAnim 方法中实现狼腿部动画,修复了 #650。
- 通过修复 canBeHitByProjectiles 的翻译,修复了 #648。
- 通过添加
allowBypassInvulnerability配置选项,以允许/禁止绕过 NPC 无敌状态,修复了 #645。 - 修复了删除按钮在宽度较小时仍显示标签的问题。
- 修复了上下按钮在某些情况下位置不正确的问题。
- 修复了对话和配置 UI 会显示名称标签的问题。
- 修复了距离动作中多个动作无法被正确触发的问题。
- 修复了 NPC 预设相关问题。
- 修复了猫 NPC 和狼 NPC 的所有者数据不同步的问题。
- 添加了预设浏览器,以便更轻松地选择常用 NPC 预设。
- 添加了预设
.snbt(文本)导出和导入功能,以便分享 NPC 预设。 - 重构了现有 NPC 预设以使用新的
.snbt格式。 - 重构了刷怪器系统以使用新的预设格式,从而提高可维护性并为未来改进做准备。
6.6.2
- 通过重做缩放系统,修复了 #643。
- 修复了重启/重载后缩放未正确更新碰撞箱和名称标签位置的问题。
- 添加了 MID 和 MOUSE_OVER 名称标签可见模式,以更细致地控制 NPC 名称显示。
- 添加了基于队伍的名称标签可见性支持,并遵循原版 Team。
6.6.1
- 通过重构显示属性的内部数据处理,修复了 #638。
6.6.0
- 通过使用专用线程池实现异步纹理加载,修复了 #634。
- 修复了纹理加载阻塞渲染线程导致游戏卡死的问题。
- 通过使用原子操作,修复了纹理重载保护中的竞争条件问题。
- 修复了远程纹理下载期间 HTTP 连接中的资源泄漏问题。
- 修复了 URL 验证刷屏问题,此前会允许同一纹理进行多个同时下载。
- 修复了远程图像验证中的异常处理,防止无效 URL 导致崩溃。
- 修复了 NPC 加载期间出现的
defineId called for:警告信息。 - 重构了纹理加载架构,加入多层防护和速率限制。
- 重构了实体数据注册逻辑,以提高可维护性。
- 将数据类转换为现代 Java record,以提升不可变性和线程安全性。
- 添加了基于 ConcurrentHashMap 的线程安全会话服务器防刷保护。
- 添加了全面的错误恢复机制,在失败时自动重置冷却。
- 通过 2 线程池和 500ms 速率限制改进了纹理加载。
- 通过针对 IIOException 和 FileNotFoundException 的特定 catch 块改进了异常处理。
6.5.2
- 修复了村民职业和工作皮肤问题。
- 通过为 gradle 依赖添加缓存,改进了 GitHub workflows。
- 改进了 Gradle 构建时间和清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型和事件,修复了 #632。
- 通过改进纹理处理性能、缓存和内存占用,修复了 #629。
- 修复了 kill 命令对 NPC 无效的问题。
- 修复了纹理重载保护在缓存驱逐后阻止缓存重新加载的问题。
- 修复了远程图像验证器中的 WebP 验证 bug(缺少 return 语句)。
- 重构了纹理处理逻辑,以提高可维护性并为未来改进做准备。
- 添加了基于时间的重载保护(60 秒),以替代永久阻止机制。
- 添加了额外的纹理处理单元测试。
- 改进了 gradle 构建任务。
6.5.0
- ⚠️ 移除了 jar-in-jar 打包方式,以获得更好的模组兼容性和 API 能力。
- 修复了 #627:改进裁剪区域实现,以提升与其他模组的兼容性。
- 修复了 #625:使用旋转或移动后的模型部件时,生动动画出现的问题。
- 修复了使用缩放模型部件时默认动画被取消的问题。
- 添加了更好的姿势动画控制,提供 smart、default 和 none 选项。
6.4.1
- 修复了 #626:不同 NPC UUID 的界面切换逻辑,感谢
Spawnblade提供的详细调查和修复建议。
6.4.0
- 通过改进对话数据验证和错误处理,修复了 #626。
- 通过重构渲染数据和渲染处理,修复了 #623。
- 通过确保自定义数据被正确保存和加载,修复了 #622。
- 修复了打开对话动作类型,使其能够打开其他 NPC 的对话。
- 通过为 ConditionDataSet 和 ActionDataSet 添加缺失的 equals 和 hashCode 方法,修复了哈希相关问题。
- 为 #622 添加了自定义数据测试物品,以便更轻松地测试自定义数据。
- 改进了 record,并修复了数据缺失可能导致的问题。
6.3.0
- 重构了配置 UI 专用组件,并将其从核心模组中移除。
- 通过在发送到客户端前过滤对话数据,修复了对话数据问题。
- 修复了对话编辑器布局问题,并提升了易用性。
- 修复了部分对话数据字段缺少默认值的问题。
- 添加了对话优先级支持,以控制对话执行顺序。
- 为对话和计分板动作添加了条件支持。
- 为对话添加了频率支持,以限制对话显示的频率。
- 添加了新的 NPC 预设,以支持计分板和条件功能。
- 通过移除冗余字段,改进了对话按钮数据格式。
6.2.0
- 修复了对话中的字符串注入问题。
- 修复了动作类型缺少翻译的问题。
- 添加了计分板动作类型,可增加、减少、设置计分板数值。
- 添加了
@score(...)NPC 宏,用于在对话中显示计分板数值。 - 添加了额外的单元测试。
- 改进了旋转按钮,增加了指示器并提升了易用性。
6.1.2
- 修复了容器和菜单同步问题,原因是缺少关闭容器数据包。
- 修复了关闭按钮在某些情况下无效的问题。
- 修复了界面切换时鼠标光标跳动的问题。
- 修复了翻译文件,并移除了重复和已弃用条目。
- 将 Easy NPC 魔杖移动到现有核心物品标签页,而不是创建新标签页。
- 为不同模型部件添加了猫姿势支持(尾巴除外)。
- 通过在不需要时禁用发光效果,提升了 EasyNPCWand 的性能。
- 通过排除 display、makers、throwns 和 spawners 等非生物实体,改进了自定义实体检测。
- 改进了猫变种处理。
6.1.1
- 通过重新验证实体类型,修复了 #612。
- 通过强制同步特定模型的帽子层和头部层,修复了 #610。
- 修复了兽人纹理。
- 通过将相关逻辑移到仅客户端执行,改进了自定义模型支持和性能。
- 改进了玩家到 UUID 映射的缓存,用于玩家皮肤。
- 将更改模型的命令和逻辑限制为仅适用于 Doppler NPC。
6.1.0 ✨
这是一次重大版本更新。更新前请备份你的世界和 NPC 数据。 此版本包含许多改进、优化和内部变更, 与早期版本并不完全兼容。
⚠️ 破坏性变更
- 早于 6.1.0 的版本中的现有 NPC 及其配置数据,可能无法正确加载,或需要手动调整。
- 为支持新的使用场景,内部数据格式和部分行为已被重构。
🧩 新的模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC – 同时包含 Core 和 Configuration UI 的整合包,提供开箱即用的体验。
- Easy NPC: Core – 轻量级的 NPC 运行时与逻辑模块,依赖最少。适用于服务器、整合包和开发者。
- Easy NPC: Configuration UI – 独立的配置界面,用于创建和编辑 NPC。可安装在需要该界面的客户端上。
🎯 为什么进行此更改?
- 允许服务器和整合包仅在服务端安装 Core 模组,以获得更精简的配置。
- 在不需要到处使用 UI 时,减少内存占用和加载时间。
- 通过分离 UI 和核心逻辑,加快开发与测试速度。



