基本信息
我的世界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 的日志消息。
- 使用新设计更新了 logo。
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。
- 通过添加更多逃跑目标来实现 NPC 逃离玩家、村民、怪物等,修复了 #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 工作流。
- 改进了 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 添加了自定义数据测试物品,以便更容易测试自定义数据。
- 改进了 records 并修复了潜在的缺失数据问题。
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 – 同时包含核心版和配置 UI 的整合包,提供开箱即用的体验。
- Easy NPC: Core – 轻量级的 NPC 运行时与逻辑模块,依赖最少。面向服务器、整合包和开发者。
- Easy NPC: Configuration UI – 独立的配置界面,用于创建和编辑 NPC。可安装在需要该 UI 的客户端上。
🎯 为什么要这样改?
- 允许服务器和整合包仅在服务端安装 Core 模组,从而获得更精简的配置。
- 在不需要到处使用 UI 时,减少内存占用和加载时间。
- 通过分离 UI 和核心逻辑,加快开发和测试速度。



