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



