基本信息
我的世界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: Core 更新日志 (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。
- 通过添加更多逃跑目标,用于逃离玩家、村民、怪物等,修复了 #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
- 通过为原版漏洞添加额外的客户端检查,修复了 #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 验证漏洞(缺少 return 语句)。
- 重构了纹理处理逻辑,以提高可维护性并为未来改进做准备。
- 添加了基于时间的重载保护(60 秒),以替代永久阻塞机制。
- 为纹理处理添加了额外单元测试。
- 改进了 gradle 构建任务。
6.5.0
- ⚠️ 为了更好的模组兼容性和 API 能力,移除了 jar-in-jar 打包方案。
- 修复了 #627:改进了 scissor 实现,以提升与其他模组的兼容性。
- 修复了 #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、maker、thrown 和 spawner 等非生物实体,改进了自定义实体检测。
- 改进了猫变体处理。
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。可安装在需要该 UI 的客户端上。
🎯 为什么要这样改?
- 允许服务器和整合包仅在服务端安装 Core 模组,以获得更精简的配置。
- 在无需到处使用 UI 时,可减少内存占用和加载时间。
- 通过分离 UI 和核心逻辑,让开发和测试更加高效。



