基本信息
我的世界Java版本
26.1.2
1.21.11
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-06-15
更新日志
Easy NPC(1.20.1)更新日志
说明
本更新日志汇总了主要变更内容。
完整更新日志请参阅 GitHub 历史记录。
注意:更新至新版本前,请务必备份您的世界存档及NPC数据!
更多详细信息请查阅 升级指南。
6.13.0(安全与权限更新)
说明:本次更新增强了多人游戏环境下的安全校验与权限管理。
新增了执行服务端命令的能力,但若被恶意利用,可能存在潜在风险。
本次更新将模型根节点的数据与逻辑,同其余模型部件的数据与逻辑分离,
因此可能导致现有NPC的根节点旋转与缩放重置为默认值。
- 通过分离模型根节点数据与逻辑,修复了问题 #725。
- 通过支持本地 .sbnt 文件作为预设,修复了问题 #722。
- 通过为对话与配置界面背景添加专用资源,修复了问题 #675。
- 通过引入新的安全校验与权限系统,修复了问题 #605、#532 和 #529。
- 通过添加实验性API文档与自定义模型支持示例,修复了问题 #469 和 #311。
- 通过移除冗余的背景渲染逻辑,修复了配置界面背景重复渲染的问题。
- 通过调整实体碰撞箱,修复了幽灵(Ghast)的碰撞箱与名称标签位置异常问题。
- ⚠️ 新增安全校验机制,防范潜在漏洞利用,确保在多人游戏环境中安全使用。
- 将动态对话界面背景替换为静态背景,以提升性能、可定制性与兼容性。
- 将动态配置界面背景替换为静态背景,以提升性能。
- 重构了配置界面专属组件,并将其从核心模组中移除。
- 移除了重复的精灵图集(sprite sheets)。
- 为未来可能集成 Luck Perms(如问题 #712 所述)做好权限系统准备。
- 对配置界面渲染与资源相关代码进行了整体清理与优化。
6.12.0
- 通过基于原版模型对自定义模型部件列表增加额外校验,修复了问题 #714。
- 通过将每NPC级别的 INFO 级日志降级为 DEBUG 级,并合并冗余警告信息,修复了问题 #713。
- 通过缩减启动/配置阶段日志输出体积,修复了问题 #711。
- 修复了NBT校验防护机制,避免生产环境中不必要的缓冲区分配。
- 在 EasyNPCModelManager 中添加了模型部件名称常量,确保混入(mixin)代码中的一致使用。
- 优化 RenderEntityTypeSupportConfig:增强过滤逻辑并优化数据结构,提升性能与可维护性。
- 移除了会倾倒大量数据结构的冗长调试日志。
6.11.0
- 修复了新自定义图层系统与手部渲染导致的 #703 渲染问题。
- 通过为无效交易报价增加额外防护与日志记录,修复了问题 #701。
- 修复了智能动画在头部位置被修改时无法正常工作的问题。
- 通过将玩家检测逻辑移回服务端独占执行,修复了头部追踪问题。
- 优化 CustomLookAtPlayerGoal,使其更好地处理边界情况并减少抖动。
- 修复了多普勒NPC(Doppler NPCs)持续持有手中物品的问题。
- 改进了 PoseManager 的日志消息。
- 更新了Logo设计。
6.10.0
- 通过切换至
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。
- 通过为逃离玩家、村民、怪物等行为添加额外“逃离”目标(Flee goals),修复了问题 #597。
- 修复了姿势加载逻辑,改为直接从模组资源读取,不再复制文件至磁盘。
- 修复了实体加入时重复调用
saveNPC的问题,方法是在保存前先检查注册表中是否已存在对应条目。 - 新增
despawn与spawn命令,支持通过UUID移除或重新生成NPC,并可配置移除原因。 - 新增
ModelPoseAPI与EasyNPCEntityHandler公共API类,供外部模组以编程方式控制NPC姿势及管理NPC。 - 为所有受支持的NPC类型添加了姿势数据文件。
- 在基础姿势配置界面中添加了“锁定旋转”复选框。
- 新增
MoveToPositionGoal,可在执行回调动作前,将NPC移动至指定位置。 - 新增
EasyNPCLookControl与EasyNPCBodyRotationControl,以尊重已锁定的根节点旋转。 - 在NPC实体数据索引中同步支持所有者变更与维度变更。
- 将
EasyNPCItemAttachmentLayer注入到各类实体渲染器中。 - 在“逃离目标”配置页中新增专用“逃离目标”选项卡,支持设置逃离爬行者、怪物、生物、玩家、村民及阳光的目标。
- 在“跟随目标”选项卡中新增
FOLLOW_ITEM目标,使NPC可根据资源位置(如minecraft:apple)跟随物品实体。 - 新增
LookAtEntityByUUIDGoal,并在“注视目标”界面中启用了“按UUID注视实体”与“注视所有者”目标。 - 在
SynchedDataIndex中添加persistent标志,使瞬态索引(如弩箭充能、模型动画)不再触发脏标记(dirty-save marking)。 - 为
SlimeBase添加了可配置的customParticlesEnabled标志,供API使用者调用。 - 新增
SoundType.PET,并将CAT_PURR映射至猫型NPC,丰富驯服后的环境音效种类。 - 将周期性NPC保存操作的日志等级由 INFO 降为 DEBUG,降低日志冗余度。
6.8.3
- 通过升级网络协议版本强制校验版本不匹配,修复了问题 #680。
- 通过重置名称标签的位置、旋转与尺寸,修复了问题 #679。
- 通过为根节点旋转添加多状态滑动支持,修复了问题 #665。
- 通过添加禁用鼠标光标跟随选项,简化摆姿操作,修复了问题 #664。
- 通过增强X轴与Z轴根节点旋转的支持,修复了问题 #663。
- 通过添加NPC魔杖配合潜行快速旋转根节点朝向玩家的功能,修复了问题 #661。
- 通过在交互处理器中增加移动工具检测,修复了移动工具误触发交互的问题。
- 通过在交互处理器中增加预设物品检测,修复了预设物品误触发交互的问题。
- 通过调整碰撞箱与眼睛高度计算,修复了史莱姆与幽灵(Ghast)的碰撞箱及名称标签位置问题。
- 通过调整偏移值,修复了史莱姆与幽灵(Ghast)GUI的位置问题。
6.8.2
- 通过扩展
SafeMerchantData并添加notifyTrade方法避免崩溃,修复了问题 #677。 - 新增NPC成长进度数据支持,依据玩家互动与行为实现NPC等级提升。
- 新增全局NPC追踪系统,便于跨世界统一管理与调试NPC。
- 为
OriginalModelConfig.withVariantTexture()添加选项,支持在原始模型上使用变体纹理。
6.8.1
- 通过复用已有预设辅助方法而非自定义方法,修复了问题 #676。
6.8.0(新增API支持)
- 通过为非法网络数据包添加警告提示与额外校验,修复了问题 #667。
- 修复了马匹生成蛋的模型显示。
- 修复了悦灵(allay)、鸡、苦力怕(creeper)、狐狸、幽灵(ghast)、马、恼鬼(illager)、铁傀儡、史莱姆与恼鬼(vex)的姿势支持。
- 新增NPC基础类,以强化API支持能力。
- 新增NPC原始类(raw classes),以支持更高级的API功能。
- 新增史莱姆与幽灵(Ghast)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记录(records),增强不可变性与线程安全性。
- 使用 ConcurrentHashMap 实现线程安全的会话服务器防刷机制。
- 添加全面的错误恢复机制,在失败时自动重置冷却时间。
- 优化纹理加载:采用双线程池与500毫秒速率限制。
- 优化异常处理:为 IIOException 与 FileNotFoundException 分别添加专门捕获块。
6.5.2
- 修复了村民职业与工作皮肤显示问题。
- 优化GitHub工作流,为Gradle依赖添加缓存。
- 提升Gradle构建速度并优化清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型与事件,修复了问题 #632。
- 通过优化纹理处理性能、缓存策略与内存占用,修复了问题 #629。
- 修复了NPC无法响应kill命令的问题。
- 修复了纹理重载防护机制在缓存逐出后阻止缓存重载的问题。
- 修复了远程图像校验器中WebP验证的bug(缺失return语句)。
- 重构纹理处理逻辑,以提升可维护性与未来拓展性。
- 新增基于时间的重载防护(60秒),替代永久性阻断机制。
- 为纹理处理新增额外单元测试。
- 优化Gradle构建任务。
6.5.0
- ⚠️ 移除了“jar-in-jar”打包方式,以提升模组兼容性与API能力。
- 通过优化剪裁(scissor)实现,修复了问题 #627,增强与其他模组的兼容性。
- 修复了使用旋转或移动的模型部件时,生动动画(lively animation)异常的问题。
- 修复了使用缩放模型部件时默认动画被取消的问题。
- 新增更完善的姿势动画控制,提供“智能”、“默认”与“无”三种选项。
6.4.1
- 通过优化不同NPC UUID间的界面切换逻辑,修复了问题 #626;感谢
Spawnblade提供详尽调查与修复建议。
6.4.0
- 通过增强对话数据校验与错误处理,修复了问题 #626。
- 通过重构渲染数据与渲染处理逻辑,修复了问题 #623。
- 通过确保自定义数据能被正确保存与加载,修复了问题 #622。
- 修复了“打开对话”动作类型,使其支持从其他NPC触发对话。
- 通过为 ConditionDataSet 与 ActionDataSet 补全缺失的 equals 与 hashCode 方法,修复了哈希问题。
- 新增自定义数据测试物品,用于问题 #622 及更便捷的自定义数据测试。
- 优化记录类(records)并修复潜在的缺失数据问题。
6.3.0
- 重构配置界面专属组件,并将其从核心模组中移除。
- 修复对话数据:在发送至客户端前进行过滤。
- 修复对话编辑器布局问题并提升易用性。
- 修复部分对话数据字段缺少默认值的问题。
- 新增对话优先级支持,用于控制对话执行顺序。
- 新增对话与计分板动作的条件支持。
- 新增对话频率支持,用于限制对话展示频次。
- 新增支持计分板与条件功能的NPC预设。
- 优化对话按钮数据格式,移除冗余字段。
6.2.0
- 修复了对话中的字符串注入漏洞。
- 修复了部分动作类型缺少翻译的问题。
- 新增计分板动作类型,支持增减、设定计分板数值。
- 新增
@score(...)NPC宏,用于在对话中显示计分板数值。 - 新增额外单元测试。
- 优化旋转按钮,添加指示器并提升易用性。
6.1.2
- 修复了容器与菜单同步问题,补充缺失的关闭容器数据包。
- 修复了部分情况下关闭按钮失效的问题。
- 修复了界面切换时鼠标光标跳跃的问题。
- 修复了翻译文件,移除了重复与已弃用的条目。
- 将Easy NPC魔杖移至现有核心物品分类页,而非新建分类页。
- 新增猫型NPC姿势支持(尾部除外各模型部件)。
- 通过在无需时禁用发光效果,优化 EasyNPCWand 发光效果性能。
- 通过排除非生物实体(如展示框、画、投掷物、刷怪箱),优化自定义实体检测。
- 优化猫型NPC变体处理。
6.1.1
- 通过重新校验实体类型,修复了问题 #612。
- 通过强制同步特定模型的帽子与头部图层,修复了问题 #610。
- 修复了兽人(orc)纹理显示。
- 通过将相关逻辑迁移至客户端独占执行,提升了自定义模型支持能力与性能。
- 优化玩家UUID映射缓存,以加速玩家皮肤加载。
- 将更换模型的命令与逻辑限定于多普勒NPC(Doppler NPCs)。
6.1.0 ✨
这是一次重大版本更新。更新前请务必备份您的世界存档及NPC数据。
本版本包含大量改进、优化与内部重构,与早期版本 不完全兼容。
⚠️ 破坏性变更
- 6.1.0 版本之前创建的NPC及其配置数据,可能无法正常加载,或需手动调整。
- 内部数据格式与部分行为已被重构,以支持新应用场景。
🧩 新模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC —— 包含核心功能与配置界面的整合包,开箱即用。
- Easy NPC:核心 —— 轻量级运行时与NPC逻辑,依赖极少,适用于服务端、模组包及开发者。
- Easy NPC:配置界面 —— 独立的NPC创建与编辑界面,仅需安装于需要UI的客户端。
🎯 此次变更的原因?
- 服务端与模组包可仅部署 核心 模组,实现更精简的部署方案。
- 当无需UI时,可显著降低内存占用与加载时间。
- 将UI与核心逻辑分离,可加快开发与测试速度。



