基本信息
我的世界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。
- 切换至
- 修复多项目标注册问题,包括:
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 所有者变更与维度变更,并将其纳入实体数据索引(
SynchedDataIndex)。 - 将
EasyNPCItemAttachmentLayer注入多个实体渲染器中。 - 新增专属“逃离目标(Flee Objective)”配置页,支持设置逃离苦力怕、怪物、生物、玩家、村民及阳光。
- 在“跟随目标(Follow Objective)”页中新增
FOLLOW_ITEM类型,支持按资源路径(如minecraft:apple)跟随物品实体。 - 新增
LookAtEntityByUUIDGoal,并在“注视目标(Look Objective)”界面中启用“按 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 魔杖并潜行时,可快速使 ROOT 朝向玩家。
- 修复移动工具错误触发交互行为的问题:在交互处理器中增加对移动工具的判断。
- 修复预设物品(Preset Item)错误触发交互行为的问题:在交互处理器中增加对预设物品的判断。
- 修复史莱姆与幽浮怪的碰撞箱与名称标签位置异常:调整包围盒与眼睛高度计算逻辑。
- 修复史莱姆与幽浮怪 GUI 界面位置偏移:调整偏移量参数。
6.8.2
- 修复 #677:扩展
SafeMerchantData,新增notifyTrade方法以避免崩溃。 - 新增 NPC 进阶系统支持:基于玩家互动与行为实现 NPC 升级。
- 新增全局 NPC 追踪系统,便于跨世界统一管理与调试。
- 为
OriginalModelConfig新增.withVariantTexture()方法,支持在原始模型上使用变体纹理。
6.8.1
- 修复 #676:改用已有的预设辅助方法,而非自定义实现。
6.8.0(新增 API 支持)
- 修复 #667:为非法网络数据包新增警告日志与多重校验。
- 修复马匹生成蛋模型显示异常。
- 修复以下生物的姿势支持:悦灵(Allay)、鸡、苦力怕、狐狸、幽浮怪、马、恼鬼(Illager)、铁傀儡、史莱姆、恼鬼(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 绕过无敌状态。 - 修复删除按钮在宽度较小时仍显示标签文字的问题。
- 修复上下按钮在某些情况下定位不准的问题。
- 修复对话界面与配置界面中意外显示名称标签的问题。
- 修复距离触发动作(Distance Action)中多个动作未能正确触发的问题。
- 修复 NPC 预设相关问题。
- 修复猫型与狼型 NPC 的所有者数据未同步的问题。
- 新增预设浏览器(Preset Browser),便于快速选择常用 NPC 预设。
- 新增预设
.snbt(纯文本格式)导出与导入功能,方便分享 NPC 预设。 - 将现有 NPC 预设重构为新
.snbt格式。 - 重构刷怪笼系统,采用新预设格式,提升可维护性与未来扩展能力。
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:警告日志。 - 重构纹理加载架构,引入多层防御机制与速率限制。
- 重构实体数据注册逻辑,提升可维护性。
- 将数据类(Data Classes)迁移为现代 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
- 将配置界面专用组件重构并移出核心模组,实现模块解耦。
- 修复对话数据:在发送至客户端前进行过滤。
- 修复对话编辑器布局问题,提升易用性。
- 修复部分对话字段缺少默认值的问题。
- 新增对话优先级(Dialog Priority)支持,控制对话执行顺序。
- 新增对话与记分板动作的条件(Condition)支持。
- 新增对话频率(Frequency)支持,限制对话触发频次。
- 新增支持记分板与条件功能的 NPC 预设。
- 优化对话按钮数据格式,移除冗余字段。
6.2.0
- 修复对话中字符串注入(String Injection)漏洞。
- 修复部分动作类型缺少本地化翻译的问题。
- 新增记分板动作类型:支持增加、减少、设置记分板数值。
- 新增 NPC 宏命令
@score(...),可在对话中显示记分板数值。 - 新增更多单元测试。
- 优化旋转按钮(Spin Button):添加状态指示器,提升交互体验。
6.1.2
- 修复容器与菜单同步问题:补全缺失的关闭容器数据包。
- 修复某些情况下关闭按钮失效的问题。
- 修复界面跳转时鼠标光标异常跳跃的问题。
- 修复翻译文件:移除重复与已弃用条目。
- 将 Easy NPC 魔杖移至已有核心物品栏,不再新建独立标签页。
- 新增猫型 NPC 姿势支持(除尾巴外所有模型部件)。
- 优化
EasyNPCWand发光效果性能:仅在需要时启用。 - 优化自定义实体检测逻辑:排除非生物实体(如展示框、标记实体、投掷物、刷怪笼等)。
- 优化猫型 NPC 变体处理逻辑。
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:轻量级运行时与逻辑核心,依赖极少,适用于服务器、整合包与开发者。
- Easy NPC: Configuration UI:独立配置界面,用于创建与编辑 NPC,仅需安装于需要 UI 的客户端。
🎯 为何如此重构?
- 服务器与整合包可仅部署 Core 模组,精简服务端配置;
- 在无需 UI 的场景下显著降低内存占用与加载耗时;
- 分离 UI 与核心逻辑,加速开发与测试流程。



