Easy NPC (Bundle) 6.7.1
on 2026 Jan 26Easy NPC:核心版(1.21.1)更新日志
说明
本更新日志汇总了主要变更内容。
如需完整变更记录,请访问 GitHub 历史记录。
⚠️ 注意:更新至新版本前,请务必备份您的世界及NPC数据!
更多升级相关信息,请参阅 升级指南。
6.7.1
- 通过在客户端新增校验逻辑,修复了 #657 和 #656(修复原版漏洞导致的问题)。
6.7.0
- 通过在
setupAnim方法中实现狼类腿部动画,修复了 #650。 - 修复了 #648:修正
canBeHitByProjectiles的本地化翻译。 - 修复了 #645:新增配置项
allowBypassInvulnerability,用于启用或禁用NPC绕过无敌状态的能力。 - 修复了删除按钮在宽度较小时仍显示标签文字的问题。
- 修复了上/下按钮在某些情况下定位不准确的问题。
- 修复了对话框与配置界面中错误显示命名牌的问题。
- 修复了距离触发动作中多个动作无法正确触发的问题。
- 修复了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的线程安全会话服务器防刷机制。 - 新增全面的错误恢复机制,失败时自动重置冷却时间。
- 改进纹理加载:采用双线程池 + 500毫秒速率限制。
- 改进异常处理:针对
IIOException与FileNotFoundException添加专属捕获块。
6.5.2
- 修复了村民职业与工作皮肤显示异常问题。
- 优化GitHub工作流,为Gradle依赖添加缓存。
- 优化Gradle构建耗时与清理任务。
6.5.1
- 通过实现
ON_KILL动作类型与事件,修复了 #632。 - 通过优化纹理处理性能、缓存策略与内存占用,修复了 #629。
- 修复了对NPC执行击杀命令无效的问题。
- 修复了纹理重载保护机制阻止缓存驱逐后重新加载的问题。
- 修复了远程图像校验器中WebP验证的缺陷(缺失返回语句)。
- 重构纹理处理逻辑,提升可维护性并为后续改进预留空间。
- 新增基于时间的重载保护(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 及自定义数据功能的便捷测试。
- 优化记录类(record)实现,并修复潜在的缺失数据问题。
6.3.0
- 重构配置界面专属组件,并将其从核心模组中移除。
- 修复对话数据:在发送至客户端前先过滤对话数据。
- 修复对话编辑器布局问题,提升易用性。
- 修复部分对话数据字段缺失默认值的问题。
- 新增对话优先级支持,用于控制对话执行顺序。
- 新增对话与计分板动作的条件支持。
- 新增对话频率支持,用于限制对话显示频次。
- 新增支持计分板与条件功能的NPC预设。
- 优化对话按钮数据格式,移除冗余字段。
6.2.0
- 修复对话中的字符串注入漏洞。
- 修复动作类型缺失本地化翻译的问题。
- 新增计分板动作类型,支持增加、减少、设定计分板数值。
- 新增
@score(...)NPC宏,用于在对话中显示计分板数值。 - 新增额外单元测试。
- 优化旋转按钮(spin button):添加指示器并提升易用性。
6.1.2
- 修复容器与菜单同步问题(补充缺失的关闭容器数据包)。
- 修复关闭按钮在某些情况下失效的问题。
- 修复屏幕切换过程中鼠标光标异常跳动的问题。
- 修复翻译文件,移除重复及已弃用条目。
- 将Easy NPC魔杖移至现有核心物品分类页签,不再新建页签。
- 新增猫型姿态支持(适配不同模型部件,尾部除外)。
- 优化EasyNPCWand发光效果性能:仅在必要时启用。
- 优化自定义实体识别逻辑:排除非生物实体(如展示框、标记实体、投掷物、刷怪箱等)。
- 优化猫型变体处理逻辑。
6.1.1
- 通过重新校验实体类型,修复了 #612。
- 通过强制同步特定模型的帽子与头部图层,修复了 #610。
- 修复兽人纹理显示问题。
- 通过将相关逻辑迁移至客户端侧,提升自定义模型支持能力与性能。
- 优化玩家→UUID映射缓存,提升玩家皮肤加载效率。
- 将更换模型指令与逻辑限定于Doppler NPC类型。
6.1.0 ✨
本次为重大版本更新。更新前请务必备份您的世界及NPC数据。
本版本包含大量改进、优化与内部重构,与早期版本不完全兼容。
⚠️ 破坏性变更
- 6.1.0 之前版本创建的NPC及其配置数据可能无法正常加载,或需手动调整。
- 内部数据格式与部分行为已重构,以支持新用例。
🧩 新模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC —— 集成核心功能与配置界面的即插即用整合包。
- Easy NPC:核心版 —— 轻量级运行时与NPC逻辑,依赖极少。适用于服务器、整合包及开发者。
- Easy NPC:配置界面 —— 独立的NPC创建与编辑配置界面。仅需安装于需使用UI的客户端。
🎯 此次变更原因?
- 服务器与整合包可仅部署 核心版,实现精简配置。
- 在无需UI的场景下降低内存占用与加载时间。
- 分离UI与核心逻辑,加快开发与测试速度。
Easy NPC (Bundle) 6.7.1
on 2026 Jan 26Easy NPC:核心版(1.21.1)更新日志
注意事项
本更新日志汇总了主要变更内容。
完整更新日志请参阅 GitHub 历史记录。
注意:更新至新版本前,请务必备份您的世界存档及NPC数据!
更多升级相关信息,请查阅 升级指南。
6.7.1
- 通过在客户端增加额外校验,修复了 #657 和 #656(针对原版漏洞)。
6.7.0
- 通过在
setupAnim方法中实现狼类腿部动画,修复了 #650。 - 通过修正
canBeHitByProjectiles的翻译,修复了 #648。 - 通过新增
allowBypassInvulnerability配置选项(用于启用/禁用NPC无敌状态绕过),修复了 #645。 - 修复了删除按钮在宽度较小时仍显示标签的问题。
- 修复了上下按钮在某些情况下定位不正确的问题。
- 修复了对话框与配置界面中名称标签意外显示的问题。
- 修复了“距离触发”动作中多个动作未能被正确触发的问题。
- 修复了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的线程安全会话服务器防刷保护。 - 新增全面的错误恢复机制,失败时自动重置冷却时间。
- 优化纹理加载:采用双线程池 + 500毫秒速率限制。
- 改进异常处理:为
IIOException与FileNotFoundException分别添加专属捕获块。
6.5.2
- 修复了村民职业与工作皮肤显示异常问题。
- 优化GitHub工作流,为Gradle依赖项添加缓存。
- 提升Gradle构建速度,并优化清理任务。
6.5.1
- 通过实现
ON_KILL动作类型及对应事件,修复了 #632。 - 通过优化纹理处理性能、缓存策略与内存占用,修复了 #629。
- 修复了对NPC执行击杀命令无效的问题。
- 修复了纹理重载保护机制阻止缓存驱逐后重新加载的问题。
- 修复了远程图像校验器中WebP验证的Bug(缺失返回语句)。
- 对纹理处理逻辑进行重构,提升可维护性并为后续改进预留空间。
- 新增基于时间的重载保护(60秒),替代原有的永久阻断机制。
- 新增针对纹理处理的额外单元测试。
- 优化Gradle构建任务。
6.5.0
- ⚠️ 移除“jar-in-jar”打包方式,以提升模组兼容性与API能力。
- 通过改进剪刀(Scissors)实现,修复了 #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
- 对配置界面专用组件进行重构,并将其从核心模组中移除。
- 修复对话数据:在发送至客户端前对对话数据进行过滤。
- 修复对话编辑器布局问题,提升可用性。
- 修复部分对话数据字段缺失默认值的问题。
- 新增对话优先级支持,用于控制对话执行顺序。
- 新增对话与计分板动作的条件支持。
- 新增对话频率支持,用于限制对话显示频次。
- 新增支持计分板与条件功能的NPC预设。
- 优化对话按钮数据格式,移除冗余字段。
6.2.0
- 修复了对话中的字符串注入漏洞。
- 修复了部分动作类型缺失翻译的问题。
- 新增计分板动作类型,支持增、减、设定计分板数值。
- 新增
@score(...)NPC宏,用于在对话中显示计分板数值。 - 新增额外单元测试。
- 优化旋转按钮(spin button):添加指示器并提升可用性。
6.1.2
- 修复了容器与菜单同步问题(因缺少关闭容器数据包)。
- 修复了关闭按钮在某些情况下无法响应的问题。
- 修复了屏幕切换过程中鼠标光标异常跳跃的问题。
- 修复翻译文件,移除重复与已弃用条目。
- 将Easy NPC魔杖移至现有核心物品标签页,不再新建标签页。
- 新增猫型NPC姿态支持(各模型部件,尾部除外)。
- 优化EasyNPC魔杖发光效果性能:仅在需要时启用。
- 优化自定义实体检测逻辑:排除非生物实体(如展示框、标记实体、投掷物、刷怪笼)。
- 优化猫型变体处理逻辑。
6.1.1
- 通过重新校验实体类型,修复了 #612。
- 通过强制同步特定模型的帽子与头部图层,修复了 #610。
- 修复了兽人(Orc)纹理显示问题。
- 优化自定义模型支持与性能:将相关逻辑迁移至客户端侧。
- 优化玩家皮肤的玩家→UUID映射缓存。
- 将更换模型命令与逻辑限制为仅对Doppler NPC生效。
6.1.0 ✨
这是一次重大版本更新。更新前请务必备份您的世界存档及NPC数据。
本版本包含大量改进、优化与内部重构,与早期版本不完全兼容。
⚠️ 破坏性变更
- 6.1.0 版本之前创建的NPC及其配置数据,可能无法正常加载,或需手动调整。
- 内部数据格式与部分行为已重构,以支持新用例。
🧩 新的模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC —— 包含核心功能与配置界面的一体化整合包,开箱即用。
- Easy NPC:核心版 —— 轻量级运行时与NPC逻辑,依赖极少,适用于服务端、模组包及开发者。
- Easy NPC:配置界面 —— 独立的NPC创建与编辑配置界面,仅需安装于需使用UI的客户端。
🎯 此次变更的原因?
- 服务端与模组包可仅部署 核心版,实现更精简的部署方案。
- 在无需UI的场景下,显著降低内存占用与加载耗时。
- 通过分离UI与核心逻辑,加快开发与测试流程。
Easy NPC (Bundle) 6.7.1
on 2026 Jan 22Easy NPC(1.20.1)版本更新日志
注意事项
本更新日志包含变更内容的简要汇总。
如需完整更新日志,请访问 GitHub 历史记录。
注意:升级至新版本前,请务必备份您的世界存档及NPC数据!
更多信息请参阅 升级指南。
6.7.1
- 通过在客户端增加额外校验,修复了 #657 和 #656(修复原版漏洞导致的问题)。
6.7.0
- 通过在
setupAnim方法中实现狼类腿部动画,修复了 #650。 - 通过修正
canBeHitByProjectiles的翻译,修复了 #648。 - 通过新增
allowBypassInvulnerability配置选项(用于允许/禁止绕过NPC无敌状态),修复了 #645。 - 修复了删除按钮在宽度较小时仍显示标签文字的问题。
- 修复了上下按钮在某些情况下位置偏移的问题。
- 修复了对话界面与配置界面中名字标签意外显示的问题。
- 修复了距离触发动作中多个动作未能正确触发的问题。
- 修复了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的线程安全会话服务器防刷机制。 - 新增全面的错误恢复机制,失败时自动重置冷却时间。
- 优化纹理加载:采用双线程池 + 500毫秒速率限制。
- 改进异常处理:针对
IIOException与FileNotFoundException设置独立捕获块。
6.5.2
- 修复了村民职业与工作皮肤显示异常的问题。
- 通过为Gradle依赖添加缓存,优化了GitHub工作流。
- 优化了Gradle构建耗时与清理任务。
6.5.1
- 通过实现
ON_KILL动作类型与事件,修复了 #632。 - 通过优化纹理处理性能、缓存策略与内存占用,修复了 #629。
- 修复了NPC无法响应击杀命令的问题。
- 修复了纹理重载保护机制在缓存逐出后阻止缓存重新加载的问题。
- 修复了远程图像校验器中WebP格式校验的缺陷(缺失返回语句)。
- 重构纹理处理逻辑,提升可维护性与未来扩展能力。
- 新增基于时间的重载保护机制(60秒),替代永久性阻断机制。
- 新增纹理处理相关单元测试。
- 优化Gradle构建任务。
6.5.0
- ⚠️ 移除“jar-in-jar”打包方式,以提升模组兼容性与API能力。
- 通过改进剪刀(scissor)实现,修复了 #627,增强与其他模组的兼容性。
- 修复了 #625:在使用旋转或位移模型部件时,生动动画(lively animation)异常的问题。
- 修复了使用缩放模型部件时默认动画被意外取消的问题。
- 新增更完善的姿态动画控制选项:智能(smart)、默认(default)与无(none)。
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宏,可在对话中显示计分板数值。 - 新增额外单元测试。
- 优化旋钮按钮(spin button):增加指示器并提升易用性。
6.1.2
- 修复容器与菜单同步问题(补充缺失的关闭容器数据包)。
- 修复关闭按钮在某些情况下失效的问题。
- 修复屏幕切换过程中鼠标光标异常跳跃的问题。
- 修复翻译文件,移除重复及已弃用条目。
- 将Easy NPC魔杖移至现有核心物品标签页,不再新建标签页。
- 新增猫姿态支持(适配不同模型部件,尾部除外)。
- 优化EasyNPCWand发光效果性能:仅在需要时启用。
- 优化自定义实体检测逻辑:排除非生物实体(如展示框、标记实体、投掷物、刷怪笼)。
- 优化猫变体处理逻辑。
6.1.1
- 通过重新校验实体类型,修复了 #612。
- 通过强制同步特定模型的帽子与头部图层,修复了 #610。
- 修复兽人(orc)材质贴图。
- 通过将相关逻辑迁移至客户端,优化自定义模型支持与性能。
- 优化玩家→UUID映射缓存,提升玩家皮肤加载效率。
- 将更换模型命令与逻辑限定为仅适用于Doppler NPC。
6.1.0 ✨
此为重大版本更新。升级前请务必备份您的世界存档及NPC数据。
本版本包含大量改进、优化与内部重构,与早期版本不完全兼容。
⚠️ 破坏性变更
- 6.1.0 之前版本创建的NPC及其配置数据可能无法正常加载,或需手动调整。
- 内部数据格式与部分行为已重构,以支持新用例。
🧩 新模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC —— 集成核心功能与配置界面的完整捆绑包,开箱即用。
- Easy NPC:Core —— 轻量级运行时与NPC逻辑,依赖极少;适用于服务器、整合包及开发者。
- Easy NPC:Configuration UI —— 独立的NPC创建与编辑配置界面;仅需安装于需使用UI的客户端。
🎯 此次变更原因
- 服务器与整合包可仅在服务端部署 Core 模组,实现精简部署。
- 在无需UI的场景下,降低内存占用与加载耗时。
- 通过分离UI与核心逻辑,加快开发与测试速度。
Easy NPC (Bundle) 6.7.1
on 2026 Jan 22Easy NPC(1.20.1)更新日志
注意事项
本更新日志汇总了主要变更内容。
如需查看完整更新日志,请访问 GitHub 历史记录。
注意:更新至新版本前,请务必备份您的世界存档及 NPC 数据!
更多详情请参阅 升级指南。
6.7.1
- 通过在客户端增加额外校验,修复 #657 和 #656(修复原版漏洞导致的问题)。
6.7.0
- 通过在
setupAnim方法中实现狼类腿部动画,修复 #650。 - 通过修正
canBeHitByProjectiles的翻译,修复 #648。 - 通过新增配置项
allowBypassInvulnerability,修复 #645,用于启用/禁用 NPC 绕过无敌状态的功能。 - 修复删除按钮在宽度较小时仍显示标签文字的问题。
- 修复上/下按钮在某些情况下定位不正确的问题。
- 修复对话界面与配置界面中命名牌意外显示的问题。
- 修复距离触发动作中多个动作未能正确执行的问题。
- 修复 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的线程安全会话服务器防刷机制。 - 新增全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进纹理加载:采用双线程池 + 500 毫秒速率限制。
- 改进异常处理:针对
IIOException与FileNotFoundException添加专属捕获块。
6.5.2
- 修复村民职业与工作皮肤显示异常的问题。
- 优化 GitHub 工作流,为 Gradle 依赖添加缓存。
- 优化 Gradle 构建耗时与清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型与事件,修复 #632。
- 通过优化纹理处理性能、缓存策略与内存占用,修复 #629。
- 修复对 NPC 执行击杀命令无效的问题。
- 修复纹理重载保护机制在缓存驱逐后阻止缓存重新加载的问题。
- 修复远程图片校验器中 WebP 格式校验的 Bug(缺失 return 语句)。
- 重构纹理处理逻辑,提升可维护性并为后续改进预留空间。
- 新增基于时间的重载保护(60 秒),替代原有的永久阻断机制。
- 为纹理处理新增额外单元测试。
- 优化 Gradle 构建任务。
6.5.0
- ⚠️ 移除“jar-in-jar”打包方式,以提升模组兼容性与 API 能力。
- 通过改进剪刀功能实现,修复 #627,提升与其他模组的兼容性。
- 修复 #625:在使用旋转或移动模型部件时,生动动画(lively animation)异常的问题。
- 修复缩放模型部件时默认动画被意外取消的问题。
- 新增更完善的姿态动画控制选项,提供智能(smart)、默认(default)与无(none)三种模式。
6.4.1
- 通过优化针对不同 NPC UUID 的界面切换逻辑,修复 #626;感谢
Spawnblade提供详尽的问题分析与修复建议。
6.4.0
- 通过加强对话数据校验与错误处理,修复 #626。
- 通过重构渲染数据与渲染逻辑,修复 #623。
- 通过确保自定义数据能被正确保存与加载,修复 #622。
- 修复“打开对话”动作类型,使其支持从其他 NPC 触发对话。
- 通过为
ConditionDataSet与ActionDataSet补充缺失的equals和hashCode方法,修复哈希相关问题。 - 新增自定义数据测试物品,便于 #622 的验证及自定义数据功能的快速测试。
- 优化记录类(record)实现,并修复潜在的数据缺失问题。
6.3.0
- 重构配置界面专属组件,并将其从核心模组中移除。
- 修复对话数据:在发送至客户端前先进行过滤。
- 修复对话编辑器布局问题,提升可用性。
- 修复部分对话数据字段缺少默认值的问题。
- 新增对话优先级支持,用于控制对话执行顺序。
- 新增对话与记分板动作的条件支持。
- 新增对话频率支持,用于限制对话触发频次。
- 新增支持记分板与条件功能的 NPC 预设。
- 优化对话按钮数据格式,移除冗余字段。
6.2.0
- 修复对话中字符串注入漏洞。
- 修复动作类型翻译缺失的问题。
- 新增记分板动作类型,支持增加、减少、设定记分板数值。
- 新增
@score(...)NPC 宏,用于在对话中显示记分板数值。 - 新增额外单元测试。
- 优化旋转按钮:增加状态指示器并提升易用性。
6.1.2
- 修复容器与菜单同步问题,补全缺失的关闭容器数据包。
- 修复某些情况下关闭按钮失效的问题。
- 修复界面切换过程中鼠标光标异常跳跃的问题。
- 修复翻译文件,移除重复与已弃用条目。
- 将 Easy NPC 魔杖移至现有核心物品分类页签,不再新建页签。
- 新增猫姿态支持(适配不同模型部件,尾部除外)。
- 优化 EasyNPCWand 光灵(glowing)效果性能:仅在必要时启用。
- 优化自定义实体检测逻辑:排除非生物实体(如展示框、画架、投掷物、刷怪笼)。
- 优化猫品种(cat variant)处理逻辑。
6.1.1
- 通过重新校验实体类型,修复 #612。
- 通过强制同步特定模型的帽子与头部图层,修复 #610。
- 修复兽人(Orc)材质贴图。
- 通过将相关逻辑迁移至客户端侧,提升自定义模型支持能力与性能。
- 优化玩家 → UUID 映射缓存,提升玩家皮肤加载效率。
- 将更换模型命令与逻辑限定为仅对 Doppler NPC 生效。
6.1.0 ✨
本次为重大版本更新。更新前请务必备份您的世界存档及 NPC 数据。
本版本包含大量改进、优化与内部重构,与早期版本不完全兼容。
⚠️ 破坏性变更
- 6.1.0 之前创建的 NPC 及其配置数据可能无法正常加载,或需手动调整。
- 内部数据格式与部分行为已重构,以支持新用例。
🧩 新模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC —— 包含核心功能与配置界面的完整整合包,开箱即用。
- Easy NPC:核心(Core) —— 轻量级运行时与 NPC 逻辑,依赖极少,适用于服务器、整合包及开发者。
- Easy NPC:配置界面(Configuration UI) —— 独立的 NPC 创建与编辑界面,仅需安装于需要该界面的客户端。
🎯 此次变更原因?
- 服务器与整合包可仅部署 核心(Core) 模组,实现精简配置。
- 在无需界面的场景下,显著降低内存占用与加载耗时。
- 分离 UI 与核心逻辑,加快开发与测试速度。
Easy NPC (Bundle) 6.7.0
on 2026 Jan 20Easy NPC (1.20.1) 更新日志
注意
此更新日志包含简要的变更说明。
如需完整更新日志,请访问 GitHub 历史记录。
注意:更新到新版本前请务必备份您的世界和NPC数据!
更多信息请查看 升级指南。
6.7.0
- 通过在 setupAnim 方法中实现狼腿部动画修复了 #650。
- 修复了 #648 中 canBeHitByProjectiles 的翻译问题。
- 通过添加
allowBypassInvulnerability配置选项来允许/禁止NPC绕过无敌状态,修复了 #645。 - 修复了删除按钮在宽度较小时仍显示标签的问题。
- 修复了上下按钮在某些情况下位置不正确的问题。
- 修复了对话框和配置UI中名称标签仍会显示的问题。
- 修复了距离触发动作中多个动作未被正确触发的问题。
- 修复了NPC预设相关的问题。
- 修复了猫型NPC和狼型NPC的所有者数据未能正确同步的问题。
- 添加了预设浏览器,便于选择常用NPC预设。
- 添加了预设 .snbt(文本)导出与导入功能,用于分享NPC预设。
- 将现有NPC预设重构为新的 .snbt 格式。
- 重构刷怪笼系统以使用新预设格式,提升可维护性并为未来改进做准备。
6.6.2
- 通过重构缩放系统修复了 #643。
- 修复了重启/重载后缩放未能正确更新碰撞箱和名称标签位置的问题。
- 添加 MID 和 MOUSE_OVER 名称标签可见性模式,以更精细地控制NPC名称显示。
- 添加基于队伍的名称标签可见性支持,遵循原版队伍机制。
6.6.1
- 通过重构显示属性的内部数据处理方式修复了 #638。
6.6.0
- 通过实现带专用线程池的异步纹理加载修复了 #634。
- 修复了纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作修复了纹理重载保护中的竞态条件。
- 修复了远程纹理下载过程中HTTP连接的资源泄漏问题。
- 修复了URL验证垃圾信息导致同一纹理被多次同时下载的问题。
- 修复了远程图像验证中的异常处理,防止因无效URL导致崩溃。
- 修复了NPC加载期间出现的
defineId called for:警告信息。 - 重构纹理加载架构,采用多层防御和速率限制机制。
- 重构实体数据注册逻辑,提高可维护性。
- 将数据类转换为现代Java记录形式,增强不可变性和线程安全性。
- 添加基于ConcurrentHashMap的线程安全会话服务器防垃圾保护。
- 添加全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进纹理加载,使用2线程池并设置500毫秒速率限制。
- 改进异常处理,针对IIOException和FileNotFoundException使用特定捕获块。
6.5.2
- 修复了村民职业和工作皮肤的问题。
- 通过为Gradle依赖项添加缓存来优化GitHub工作流。
- 优化Gradle构建时间和清理任务。
6.5.1
- 通过实现ON_KILL动作类型和事件修复了 #632。
- 通过改进纹理处理性能、缓存和内存使用修复了 #629。
- 修复了kill命令对NPC无效的问题。
- 修复了纹理重载保护阻止缓存被逐出后重新加载的问题。
- 修复了远程图像验证器中WebP验证的bug(缺少返回语句)。
- 重构纹理处理逻辑,提升可维护性和未来扩展性。
- 添加基于时间的重载保护(60秒),取代永久性阻断机制。
- 为纹理处理添加额外单元测试。
- 优化Gradle构建任务。
6.5.0
- ⚠️ 移除jar-in-jar打包方式,以提升模组兼容性和API能力。
- 通过改进剪刀实现方式修复了 #627,提升与其他模组的兼容性。
- 修复了 #625 中使用旋转或移动模型部件时的生动动画问题。
- 修复了使用缩放模型部件时默认动画被取消的问题。
- 添加更优的姿态动画控制,支持智能、默认和无三种选项。
6.4.1
- 修复了 #626 中不同NPC UUID的屏幕切换逻辑,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话数据验证和错误处理修复了 #626。
- 通过重构渲染数据和渲染处理修复了 #623。
- 确保自定义数据能被正确保存和加载,修复了 #622。
- 修复打开对话动作类型,使其支持从其他NPC打开对话。
- 通过为ConditionDataSet和ActionDataSet添加缺失的equals和hashCode方法修复哈希问题。
- 为 #622 添加自定义数据测试物品,便于测试自定义数据。
- 优化记录并修复潜在的数据缺失问题。
6.3.0
- 重构配置UI专用组件,并将其从核心模组中移除。
- 修复对话数据,通过在发送至客户端前过滤数据。
- 修复对话编辑器布局问题并提升可用性。
- 修复部分对话数据字段缺少默认值的问题。
- 添加对话优先级支持,用于控制对话执行顺序。
- 为对话和记分板动作添加条件支持。
- 添加对话频率支持,限制对话显示次数。
- 添加新的NPC预设以支持记分板和条件功能。
- 通过移除冗余字段优化对话按钮数据格式。
6.2.0
- 修复对话中的字符串注入问题。
- 修复动作类型缺少翻译的问题。
- 添加记分板动作类型,用于增加、减少或设置记分板数值。
- 添加
@score(...)NPC宏,用于在对话中显示记分板值。 - 添加额外单元测试。
- 改进旋钮按钮,添加指示器并提升可用性。
6.1.2
- 修复容器和菜单同步问题,补充缺失的关闭容器数据包。
- 修复关闭按钮在某些情况下无法使用的问题。
- 修复屏幕切换时光标跳跃的问题。
- 修复翻译文件,移除重复和已弃用条目。
- 将Easy NPC魔杖移至现有的核心物品标签页,不再创建新标签页。
- 添加对不同模型部件(尾巴除外)的猫姿态支持。
- 通过在不需要时禁用发光效果,优化EasyNPCWand的发光性能。
- 通过排除非生物实体(如显示体、标记、投掷物和刷怪笼)改进自定义实体检测。
- 优化猫变种处理。
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与核心逻辑,加快开发和测试速度。
Easy NPC (Bundle) 6.7.0
on 2026 Jan 20更新日志 for Easy NPC (1.20.1)
注意
此更新日志包含简要的变更说明。
完整更新日志请参阅 GitHub 历史记录。
注意:在升级到新版本前,请务必备份您的世界/NPC!
更多信息请查看 升级指南。
6.7.0
- 通过在 setupAnim 方法中实现狼腿部动画修复了 #650。
- 修复了 #648 中 canBeHitByProjectiles 的翻译问题。
- 通过添加
allowBypassInvulnerability配置选项来允许/禁止NPC绕过无敌状态,以修复 #645。 - 修复了删除按钮在宽度较小时仍显示标签的问题。
- 修复了上下按钮在某些情况下位置不正确的问题。
- 修复了对话框和配置UI中名称标签仍然显示的问题。
- 修复了距离触发动作中多个动作未能正确触发的问题。
- 修复了NPC预设相关的问题。
- 修复了猫型NPC和狼型NPC的所有者数据未正确同步的问题。
- 添加了预设浏览器,便于选择常用NPC预设。
- 添加了预设 .snbt(文本)导出与导入功能,用于分享NPC预设。
- 重构现有NPC预设以使用新的 .snbt 格式。
- 重构生成器系统以采用新预设格式,提升可维护性并支持未来改进。
6.6.2
- 通过重构缩放系统修复了 #643。
- 修复了重启/重载后缩放未能正确更新命中盒和名称标签位置的问题。
- 添加了 MID 和 MOUSE_OVER 名称标签可见性模式,以更精细地控制NPC名称显示。
- 添加了基于队伍的名称标签可见性支持,遵循原版队伍机制。
6.6.1
- 通过重构显示属性的内部数据处理修复了 #638。
6.6.0
- 通过实现异步纹理加载并使用专用线程池修复了 #634。
- 修复了纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作修复了纹理重载保护中的竞争条件。
- 修复了远程纹理下载过程中HTTP连接的资源泄漏问题。
- 修复了URL验证时允许同时下载相同纹理多次的垃圾请求问题。
- 修复了远程图像验证中的异常处理,防止因无效URL导致崩溃。
- 修复了NPC加载期间出现的
defineId called for:警告信息。 - 重构纹理加载架构,增加多层防御与速率限制。
- 重构实体数据注册逻辑以提高可维护性。
- 将数据类转换为现代Java记录,增强不可变性和线程安全。
- 添加基于ConcurrentHashMap的线程安全会话服务器防垃圾请求机制。
- 添加全面的错误恢复机制,在失败时自动重置冷却。
- 改进纹理加载性能,采用2线程池及500ms速率限制。
- 改进异常处理,针对IIOException和FileNotFoundException使用具体捕获块。
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 中使用旋转或移动模型部件时的生动动画问题。
- 修复使用缩放模型部件时默认动画被取消的问题。
- 添加更好的姿态动画控制,提供智能、默认和无三种选项。
6.4.1
- 修复 #626 中不同NPC UUID的界面切换逻辑,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话数据验证和错误处理修复了 #626。
- 通过重构渲染数据和渲染处理修复了 #623。
- 确保自定义数据能被正确保存和加载,修复了 #622。
- 修复打开对话动作类型,允许从其他NPC打开对话。
- 通过为ConditionDataSet和ActionDataSet添加缺失的equals和hashCode方法修复哈希问题。
- 添加自定义数据测试物品用于 #622 及更方便的自定义数据测试。
- 优化记录并修复潜在的数据缺失问题。
6.3.0
- 重构配置UI专用组件,并将其从核心模组中移除。
- 修复对话数据,发送至客户端前先过滤数据。
- 修复对话编辑器布局问题并提升可用性。
- 修复部分对话数据字段缺少默认值的问题。
- 添加对话优先级支持,以控制对话执行顺序。
- 为对话和记分板动作添加条件支持。
- 添加对话频率支持,限制对话显示次数。
- 添加新的NPC预设以支持记分板和条件功能。
- 通过移除冗余字段优化对话按钮数据格式。
6.2.0
- 修复对话中字符串注入问题。
- 修复动作类型缺少翻译的问题。
- 添加记分板动作类型,用于增加、减少或设置记分板数值。
- 添加
@score(...)NPC宏,用于在对话中显示记分板值。 - 添加额外单元测试。
- 优化旋钮按钮,增加指示器并提升可用性。
6.1.2
- 修复容器与菜单同步问题,补全缺失的关闭容器数据包。
- 修复某些情况下关闭按钮无法使用的问题。
- 修复界面切换期间鼠标光标跳跃问题。
- 修复翻译文件,移除重复和已弃用条目。
- 将Easy NPC魔杖移至现有的核心物品标签页,而非创建新标签页。
- 添加对不同模型部件(尾部除外)的猫姿态支持。
- 通过在不需要时禁用发光效果来优化EasyNPCWand的性能。
- 通过排除非生物实体(如显示物、标记、投掷物和生成器)来优化自定义实体检测。
- 优化猫变种处理。
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与核心逻辑加快开发与测试速度。
Easy NPC (Bundle) 6.6.2
on 2026 Jan 11Easy NPC:核心 (1.21.1) 更新日志
注意
此更新日志包含简要的变更摘要。
如需完整更新日志,请参阅 GitHub 历史记录。
注意:在升级到新版本前,请务必备份您的世界和NPC!
更多信息请查看 升级指南。
6.6.2
- 通过重构缩放系统修复了 #643。
- 修复重启或重载后,缩放未能正确更新碰撞箱和名称标签位置的问题。
- 新增 MID 和 MOUSE_OVER 名称标签可见性模式,以更精细地控制NPC名称显示。
- 新增基于队伍的名称标签可见性支持,遵循原版队伍机制。
6.6.1
- 通过重构显示属性的内部数据处理方式修复了 #638。
6.6.0
- 通过实现异步纹理加载并使用专用线程池修复了 #634。
- 修复纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作修复纹理重载保护中的竞态条件。
- 修复远程纹理下载期间HTTP连接的资源泄漏问题。
- 修复URL验证允许同时下载多个相同纹理的垃圾信息问题。
- 修复远程图像验证的异常处理,防止无效URL导致崩溃。
- 修复NPC加载期间出现的
defineId called for:警告消息。 - 重构纹理加载架构,采用多层防御和速率限制机制。
- 重构实体数据注册逻辑,提高可维护性。
- 将数据类转换为现代Java记录,增强不可变性和线程安全性。
- 新增基于ConcurrentHashMap的线程安全会话服务器防垃圾保护。
- 新增全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进纹理加载,使用2线程池和500毫秒速率限制。
- 改进异常处理,针对IIOException和FileNotFoundException添加特定捕获块。
6.5.2
- 修复村民职业和工作皮肤问题。
- 通过为Gradle依赖项添加缓存来改进GitHub工作流。
- 优化Gradle构建时间和清理任务。
6.5.1
- 通过实现ON_KILL动作类型和事件修复了 #632。
- 通过改进纹理处理性能、缓存和内存使用修复了 #629。
- 修复击杀命令对NPC无效的问题。
- 修复纹理重载保护阻止缓存逐出后的重新加载问题。
- 修复远程图像验证器中WebP验证的bug(缺少return语句)。
- 重构纹理处理逻辑,提升可维护性和未来改进空间。
- 新增基于时间的重载保护(60秒),取代永久阻断机制。
- 新增纹理处理相关的单元测试。
- 优化Gradle构建任务。
6.5.0
- ⚠️ 移除jar-in-jar打包方式,以提升模组兼容性和API能力。
- 通过改进剪刀实现提升与其他模组的兼容性(#627)。
- 修复使用旋转或移动模型部件时的生动动画问题(#625)。
- 修复使用缩放模型部件时默认动画被取消的问题。
- 新增更好的姿势动画控制,提供智能、默认和无三种选项。
6.4.1
- 修复 #626 中不同NPC UUID的屏幕切换逻辑,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话框数据验证和错误处理修复了 #626。
- 通过重构渲染数据和渲染处理修复了 #623。
- 确保自定义数据能正确保存和加载,修复了 #622。
- 修复打开对话框动作类型,允许从其他NPC打开对话框。
- 通过为ConditionDataSet和ActionDataSet添加缺失的equals和hashCode方法修复哈希问题。
- 为 #622 添加自定义数据测试物品,便于测试自定义数据。
- 优化记录并修复潜在的数据缺失问题。
6.3.0
- 重构配置UI特定组件,并将其从核心模组中移除。
- 修复对话框数据,在发送至客户端前过滤数据。
- 修复对话框编辑器布局问题并提升可用性。
- 修复部分对话框数据字段缺少默认值的问题。
- 新增对话框优先级支持,用于控制对话框执行顺序。
- 新增对话框和计分板动作的条件支持。
- 新增对话框频率支持,限制对话框显示次数。
- 新增支持计分板和条件的NPC预设。
- 通过移除冗余字段优化对话框按钮数据格式。
6.2.0
- 修复对话框中的字符串注入问题。
- 修复动作类型缺少翻译的问题。
- 新增计分板动作类型,支持增加、减少、设置计分板数值。
- 新增
@score(...)NPC宏,用于在对话框中显示计分板值。 - 新增额外的单元测试。
- 优化旋转按钮,添加指示器并提升可用性。
6.1.2
- 修复容器和菜单同步问题,补充缺失的关闭容器数据包。
- 修复某些情况下关闭按钮无效的问题。
- 修复屏幕切换期间鼠标光标跳跃的问题。
- 修复翻译文件,移除重复和已弃用条目。
- 将Easy NPC魔杖移至现有的核心物品标签页,而非创建新标签页。
- 新增对不同模型部件的猫姿态支持(尾巴除外)。
- 通过在不需要时禁用发光效果,优化EasyNPCWand的发光性能。
- 通过排除非生物实体(如显示实体、标记、投掷物和刷怪笼),改进自定义实体检测。
- 优化猫变体处理。
6.1.1
- 通过重新验证实体类型修复了 #612。
- 通过强制特定模型的帽子和头部图层同步修复了 #610。
- 修复兽人纹理。
- 通过将相关逻辑移至客户端,改进自定义模型支持和性能。
- 优化玩家到UUID映射的缓存,用于玩家皮肤。
- 将更改模型的命令和逻辑限制仅适用于多普勒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和核心逻辑,加快开发和测试速度。
Easy NPC (Bundle) 6.6.2
on 2026 Jan 11Easy NPC:核心 (1.21.1) 更新日志
注意
此更新日志包含简要的变更摘要。
完整更新日志请参阅 GitHub 历史记录。
注意:更新到新版本前,请务必备份您的世界和NPC数据!
更多信息请查看 升级指南。
6.6.2
- 通过重构缩放系统修复了 #643。
- 修复重启/重载后,碰撞箱和名称标签位置未正确更新的问题。
- 新增 MID 和 MOUSE_OVER 名称标签可见性模式,更精细地控制NPC名称显示。
- 新增基于队伍的名称标签可见性支持,遵循原版队伍机制。
6.6.1
- 通过重构显示属性的内部数据处理方式修复了 #638。
6.6.0
- 通过实现带专用线程池的异步纹理加载修复了 #634。
- 修复纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作修复纹理重载保护中的竞态条件。
- 修复远程纹理下载期间HTTP连接的资源泄漏问题。
- 修复URL验证允许同一纹理多次同时下载的问题。
- 修复远程图像验证的异常处理,防止无效URL导致崩溃。
- 修复NPC加载期间出现的
defineId called for:警告信息。 - 重构纹理加载架构,采用多层防御与速率限制。
- 重构实体数据注册逻辑,提高可维护性。
- 将数据类转换为现代Java记录(records),提升不可变性和线程安全性。
- 添加基于ConcurrentHashMap的线程安全会话服务器防刷机制。
- 添加全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进纹理加载,使用2线程池并添加500毫秒速率限制。
- 改进异常处理,针对IIOException和FileNotFoundException使用特定捕获块。
6.5.2
- 修复村民职业和工作皮肤问题。
- 通过为Gradle依赖项添加缓存来改进GitHub工作流。
- 优化Gradle构建时间和清理任务。
6.5.1
- 通过实现ON_KILL动作类型和事件修复了 #632。
- 通过改进纹理处理性能、缓存和内存使用修复了 #629。
- 修复击杀命令对NPC无效的问题。
- 修复纹理重载保护机制阻止缓存逐出后重新加载的问题。
- 修复远程图像验证器中WebP验证的bug(缺少return语句)。
- 重构纹理处理逻辑,提高可维护性并便于未来改进。
- 添加基于时间的重载保护(60秒),替代永久性阻断机制。
- 为纹理处理添加额外单元测试。
- 优化Gradle构建任务。
6.5.0
- ⚠️ 移除jar-in-jar打包方式,以提升模组兼容性和API能力。
- 通过改进剪刀(Scissor)实现在 #627 中与其他模组的兼容性。
- 修复在使用旋转或移动模型部件时 #625 的生动动画问题。
- 修复使用缩放模型部件时默认动画被取消的问题。
- 添加更佳的姿势动画控制,支持智能、默认和无选项。
6.4.1
- 通过改进不同NPC UUID的屏幕切换逻辑修复了 #626,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话框数据验证和错误处理修复了 #626。
- 通过重构渲染数据和渲染处理修复了 #623。
- 确保自定义数据能被正确保存和加载,修复了 #622。
- 修复打开对话框动作类型,允许从其他NPC打开对话框。
- 通过为ConditionDataSet和ActionDataSet添加缺失的equals和hashCode方法修复哈希问题。
- 为 #622 添加自定义数据测试物品,便于测试自定义数据。
- 优化记录并修复潜在的数据缺失问题。
6.3.0
- 重构配置UI特定组件,并将其从核心模组中移除。
- 修复对话框数据,通过在发送至客户端前过滤数据。
- 修复对话框编辑器布局问题并提升可用性。
- 修复部分对话框数据字段缺少默认值的问题。
- 添加对话框优先级支持,控制对话框执行顺序。
- 为对话框和计分板动作添加条件支持。
- 添加对话框频率支持,限制对话框显示次数。
- 添加新的NPC预设,用于支持计分板和条件功能。
- 通过移除冗余字段优化对话框按钮数据格式。
6.2.0
- 修复对话框中的字符串注入问题。
- 修复动作类型缺少翻译的问题。
- 添加计分板动作类型,用于增加、减少或设置计分板数值。
- 添加
@score(...)NPC宏,可在对话框中显示计分板值。 - 添加额外单元测试。
- 优化旋钮按钮,添加指示器并提升可用性。
6.1.2
- 修复容器和菜单同步问题,补充缺失的关闭容器数据包。
- 修复某些情况下关闭按钮无效的问题。
- 修复屏幕切换期间鼠标光标跳跃问题。
- 修复翻译文件,移除重复和已弃用条目。
- 将Easy NPC魔杖移至现有的核心物品标签页,不再创建新标签页。
- 添加猫姿态支持,适用于不同模型部件(尾巴除外)。
- 通过在不需要时禁用发光效果,优化EasyNPCWand的视觉性能。
- 改进自定义实体检测,排除非生物实体如display、marker、投掷物和刷怪笼。
- 优化猫变种处理。
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配置界面,用于创建和编辑NPC。可安装在需要UI的客户端上。
🎯 此变更原因?
- 允许服务器和整合包仅在服务端部署 Core 模组,实现更轻量的配置。
- 在无需UI时减少内存占用和加载时间。
- 通过分离UI与核心逻辑,加快开发和测试速度。
Easy NPC (Bundle) 6.6.2
on 2026 Jan 11Easy NPC (1.20.1) 更新日志
注意
此更新日志包含简要的变更说明。
完整更新日志请参阅 GitHub 历史记录。
注意:在升级到新版本之前,请务必备份您的世界和NPC数据!
更多信息请查看 升级指南。
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的线程安全会话服务器防垃圾请求保护。
- 新增全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进纹理加载,使用2线程池并设置500ms速率限制。
- 改进异常处理,针对IIOException和FileNotFoundException添加特定捕获块。
6.5.2
- 修复村民职业和工作皮肤问题。
- 通过为Gradle依赖项添加缓存来改进GitHub工作流。
- 优化Gradle构建时间和清理任务。
6.5.1
- 通过实现ON_KILL动作类型和事件修复了 #632。
- 通过改进纹理处理性能、缓存和内存使用修复了 #629。
- 修复击杀命令对NPC无效的问题。
- 修复纹理重载保护机制阻止缓存逐出后重新加载的问题。
- 修复远程图像验证器中WebP验证的bug(缺少return语句)。
- 重构纹理处理逻辑,提升可维护性并便于未来改进。
- 新增基于时间的重载保护(60秒),取代永久性阻断机制。
- 为纹理处理新增更多单元测试。
- 改进Gradle构建任务。
6.5.0
- ⚠️ 移除jar-in-jar捆绑方式,以提升模组兼容性和API能力。
- 通过改进剪刀(Scissor)实现提升与其他模组的兼容性(修复 #627)。
- 修复使用旋转或移动模型部件时的动态动画问题(修复 #625)。
- 修复使用缩放模型部件时默认动画被取消的问题。
- 新增更智能的姿态动画控制选项:智能、默认和无。
6.4.1
- 通过改进不同NPC UUID的屏幕切换逻辑修复了 #626,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话数据验证和错误处理修复了 #626。
- 通过重构渲染数据和渲染处理逻辑修复了 #623。
- 确保自定义数据能够正确保存和加载,修复了 #622。
- 修复打开对话动作类型,允许从其他NPC打开对话。
- 通过为ConditionDataSet和ActionDataSet补全equals和hashCode方法修复哈希问题。
- 为 #622 新增自定义数据测试物品,便于测试自定义数据功能。
- 优化记录结构并修复潜在的数据缺失问题。
6.3.0
- 重构配置UI专用组件,并将其从核心模组中移除。
- 修复对话数据问题,在发送至客户端前过滤数据。
- 修复对话编辑器布局问题,提升可用性。
- 修复部分对话数据字段缺少默认值的问题。
- 新增对话优先级支持,用于控制对话执行顺序。
- 新增对话和记分板动作的条件支持。
- 新增对话频率支持,限制对话显示次数。
- 新增支持记分板和条件功能的NPC预设。
- 通过移除冗余字段优化对话按钮数据格式。
6.2.0
- 修复对话中的字符串注入问题。
- 修复动作类型缺少翻译的问题。
- 新增记分板动作类型,支持增加、减少或设置记分板数值。
- 新增
@score(...)NPC宏,用于在对话中显示记分板值。 - 新增额外单元测试。
- 改进旋转按钮,添加指示器并提升可用性。
6.1.2
- 修复容器和菜单同步问题,补全关闭容器数据包。
- 修复某些情况下关闭按钮无效的问题。
- 修复屏幕切换期间鼠标光标跳跃的问题。
- 修复翻译文件,移除重复和已弃用条目。
- 将Easy NPC魔杖移至现有核心物品标签页,不再创建新标签页。
- 新增对不同模型部件的猫姿态支持(尾巴除外)。
- 通过在不需要时禁用发光效果,优化EasyNPCWand的发光性能。
- 改进自定义实体检测,排除显示实体、标记、投掷物和刷怪笼等非生物实体。
- 改进猫变种处理逻辑。
6.1.1
- 通过重新验证实体类型修复了 #612。
- 强制同步特定模型的帽子和头部图层以修复 #610。
- 修复兽人(orc)纹理。
- 通过将相关逻辑移至客户端,改进自定义模型支持和性能。
- 改进玩家皮肤的玩家到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与核心逻辑,加快开发与测试速度。
Easy NPC (Bundle) 6.6.2
on 2026 Jan 11Easy NPC (1.20.1) 更新日志
注意
此更新日志包含简要的变更说明。
如需完整更新日志,请前往 GitHub 历史记录。
注意:在升级到新版本前,请务必备份您的世界和NPC数据!
更多信息请参阅 升级指南。
6.6.2
- 通过重构缩放系统修复了 #643。
- 修复了重启/重载后,缩放未能正确更新碰撞箱和名称标签位置的问题。
- 新增 MID 和 MOUSE_OVER 名称标签可见性模式,以更精细地控制NPC名称显示。
- 新增基于队伍的名称标签可见性支持,遵循原版队伍机制。
6.6.1
- 通过重构显示属性的内部数据处理方式修复了 #638。
6.6.0
- 通过使用专用线程池实现异步纹理加载,修复了 #634。
- 修复了纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作修复了纹理重载保护中的竞态条件。
- 修复了远程纹理下载期间HTTP连接的资源泄漏问题。
- 修复了URL验证时允许同时下载多个相同纹理的垃圾信息问题。
- 修复了远程图像验证中的异常处理,防止因无效URL导致崩溃。
- 修复了NPC加载期间出现的
defineId called for:警告消息。 - 重构了具有多层防御和速率限制的纹理加载架构。
- 重构了实体数据注册逻辑,以提高可维护性。
- 将数据类转换为现代Java记录,以增强不可变性和线程安全性。
- 添加了基于ConcurrentHashMap的线程安全会话服务器防刷机制。
- 添加了全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进了纹理加载,采用2线程池和500毫秒速率限制。
- 改进了异常处理,针对IIOException和FileNotFoundException添加了具体捕获块。
6.5.2
- 修复了村民职业和工作皮肤的问题。
- 通过为Gradle依赖项添加缓存来改进GitHub工作流。
- 提升Gradle构建时间和清理任务效率。
6.5.1
- 通过实现ON_KILL动作类型和事件修复了 #632。
- 通过改进纹理处理性能、缓存和内存使用修复了 #629。
- 修复了击杀命令对NPC无效的问题。
- 修复了纹理重载保护阻止缓存逐出后重新加载的问题。
- 修复了远程图像验证器中WebP验证的bug(缺少返回语句)。
- 重构了纹理处理逻辑,以提高可维护性和未来改进空间。
- 添加了基于时间的重载保护(60秒),取代永久阻断机制。
- 为纹理处理添加了额外的单元测试。
- 改进了Gradle构建任务。
6.5.0
- ⚠️ 移除了jar-in-jar打包方式,以提升模组兼容性和API能力。
- 通过改进剪刀实现提升了与其他模组的兼容性(#627)。
- 修复了使用旋转或移动模型部件时的动态动画问题(#625)。
- 修复了使用缩放模型部件时默认动画被取消的问题。
- 添加了更好的姿势动画控制,支持智能、默认和无三种选项。
6.4.1
- 修复了不同NPC UUID之间的屏幕切换逻辑(#626),感谢
Spawnblade的详细调查和修复建议。
6.4.0
- 通过改进对话数据验证和错误处理修复了 #626。
- 通过重构渲染数据和渲染处理修复了 #623。
- 确保自定义数据能够正确保存和加载,修复了 #625。
- 修复了打开对话动作类型,允许从其他NPC打开对话。
- 通过为ConditionDataSet和ActionDataSet添加缺失的equals和hashCode方法修复了哈希问题。
- 为 #622 添加了自定义数据测试物品,便于测试自定义数据。
- 改进了记录并修复了潜在的数据缺失问题。
6.3.0
- 重构了配置UI专用组件,并将其从核心模组中移除。
- 修复了对话数据,在发送至客户端前进行过滤。
- 修复了对话编辑器布局问题并提升了可用性。
- 修复了部分对话数据字段缺少默认值的问题。
- 添加了对话优先级支持,用于控制对话执行顺序。
- 为对话和计分板动作添加了条件支持。
- 添加了对话频率支持,限制对话显示次数。
- 添加了新的NPC预设,支持计分板和条件功能。
- 通过移除冗余字段改进了对话按钮数据格式。
6.2.0
- 修复了对话中的字符串注入问题。
- 修复了动作类型缺少翻译的问题。
- 添加了计分板动作类型,用于增加、减少或设置计分板数值。
- 添加了
@score(...)NPC宏,用于在对话中显示计分板值。 - 添加了额外的单元测试。
- 改进了旋转按钮,添加指示器并提升可用性。
6.1.2
- 修复了容器与菜单同步问题,补充了缺失的关闭容器数据包。
- 修复了某些情况下关闭按钮无效的问题。
- 修复了屏幕切换期间鼠标光标跳跃的问题。
- 修复了翻译文件,移除了重复和已弃用的条目。
- 将Easy NPC魔杖移至现有的核心物品标签页,而非创建新标签页。
- 添加了猫姿态支持(尾部除外的不同模型部件)。
- 通过在不需要时禁用发光效果,提升了EasyNPCWand发光性能。
- 改进了自定义实体检测,排除了诸如display、marker、thrown和刷怪笼等非生物实体。
- 改进了猫变种处理。
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和核心逻辑,加快开发和测试速度。
Easy NPC (Bundle) 6.6.1
on 2026 Jan 08Easy NPC (1.20.1) 更新日志
注意
此更新日志包含更改的摘要。
完整更新日志,请参阅 [GitHub 历史记录][history]。
注意:在升级到新版本之前,请务必备份您的世界/NPC!
更多信息请查看 [升级指南][upgrade_guide]。
6.6.1
- 通过重构显示属性的内部数据处理修复了 #638。
6.6.0
- 通过使用专用线程池实现异步纹理加载,修复了 #634。
- 修复了纹理加载阻塞渲染线程导致游戏冻结的问题。
- 使用原子操作修复了纹理重载保护中的竞争条件。
- 修复了远程纹理下载期间 HTTP 连接中的资源泄漏。
- 修复了 URL 验证垃圾邮件问题,防止同一纹理被多次同时下载。
- 修复了远程图像验证中的异常处理,避免因无效 URL 导致崩溃。
- 修复了 NPC 加载期间出现的
defineId called for:警告消息。 - 重构了具有多层防御和速率限制的纹理加载架构。
- 重构了实体数据注册逻辑,以提高可维护性。
- 将数据类转换为现代 Java 记录,以实现更好的不可变性和线程安全性。
- 添加了基于 ConcurrentHashMap 的线程安全会话服务器防垃圾保护。
- 添加了全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进了纹理加载,采用 2 线程池和 500 毫秒速率限制。
- 改进了异常处理,针对 IIOException 和 FileNotFoundException 添加了特定的 catch 块。
6.5.2
- 修复了村民职业和工作皮肤问题。
- 通过为 Gradle 依赖项添加缓存来改进 GitHub 工作流。
- 改进了 Gradle 构建时间和清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型和事件来修复 #632。
- 通过改进纹理处理性能、缓存和内存使用来修复 #629。
- 修复了击杀命令对 NPC 无效的问题。
- 修复了纹理重载保护阻止缓存逐出后重新加载的问题。
- 修复了远程图像验证器中 WebP 验证的 bug(缺少 return 语句)。
- 重构了纹理处理逻辑,以提高可维护性和未来改进空间。
- 添加了基于时间的重载保护(60 秒),取代永久性阻塞机制。
- 为纹理处理添加了额外的单元测试。
- 改进了 Gradle 构建任务。
6.5.0
- ⚠️ 移除了 jar-in-jar 打包方式,以提高模组兼容性和 API 功能。
- 修复了 #627,改进剪裁(scissor)实现,提升与其他模组的兼容性。
- 修复了 #625,解决使用旋转或移动模型部件时的生动动画问题。
- 修复了使用缩放模型部件时默认动画被取消的问题。
- 添加了更佳的姿势动画控制,支持智能、默认和无选项。
6.4.1
- 修复了 #626 中不同 NPC UUID 的屏幕切换逻辑,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话框数据验证和错误处理修复了 #626。
- 通过重构渲染数据和渲染处理修复了 #623。
- 确保自定义数据正确保存和加载,修复了
Easy NPC (Bundle) 6.6.1
on 2026 Jan 08Easy NPC (1.20.1) 更新日志
注意
此更新日志包含变更的摘要。
如需完整更新日志,请参阅 [GitHub 历史记录][history]。
注意:在升级到新版本前,请务必备份您的世界和NPC数据!
更多信息请查看 [升级指南][upgrade_guide]。
6.6.1
- 通过重构显示属性的内部数据处理机制修复 #638。
6.6.0
- 通过使用专用线程池实现异步纹理加载,修复 #634。
- 修复纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作修复纹理重载保护中的竞态条件。
- 修复远程纹理下载期间 HTTP 连接的资源泄漏问题。
- 修复 URL 验证允许同时多次下载相同纹理的垃圾信息问题。
- 修复远程图像验证中的异常处理,防止因无效 URL 导致崩溃。
- 修复 NPC 加载期间出现的
defineId called for:警告消息。 - 重构纹理加载架构,采用多层防御与速率限制机制。
- 重构实体数据注册逻辑,提升可维护性。
- 将数据类转换为现代 Java 记录(records),以提高不可变性和线程安全性。
- 添加基于 ConcurrentHashMap 的线程安全会话服务器防垃圾保护。
- 添加全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进纹理加载,使用 2 线程池并设置 500ms 的速率限制。
- 改进异常处理,针对 IIOException 和 FileNotFoundException 使用特定捕获块。
6.5.2
- 修复村民职业和工作皮肤问题。
- 通过为 Gradle 依赖项添加缓存来改进 GitHub 工作流。
- 提升 Gradle 构建速度及清理任务效率。
6.5.1
- 通过实现 ON_KILL 动作类型和事件来修复 #632。
- 通过改进纹理处理性能、缓存和内存使用来修复 #629。
- 修复击杀命令对 NPC 无效的问题。
- 修复纹理重载保护阻止缓存逐出后重新加载的问题。
- 修复远程图像验证器中 WebP 校验的 bug(缺少 return 语句)。
- 重构纹理处理逻辑,以便于维护和未来改进。
- 添加基于时间的重载保护(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。
- 确保自定义数据能够正确保存和加载,修复 #625。
- 修复打开对话动作类型,允许
Easy NPC (Bundle) 6.6.0
on 2026 Jan 05Easy NPC:地核 更新日志 (1.21.1)
注意
此更新日志包含简要的变更说明。
如需完整更新日志,请参阅 [GitHub 历史记录][history]。
注意:更新到新版本前,请务必备份您的世界/NPC!
更多信息请查看 [升级指南][upgrade_guide]。
6.6.0
- 通过使用专用线程池实现异步纹理加载,修复了 #634。
- 修复了纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作修复了纹理重载保护中的竞态条件问题。
- 修复了远程纹理下载期间 HTTP 连接的资源泄漏问题。
- 修复了 URL 验证垃圾信息允许同一纹理同时多次下载的问题。
- 修复了远程图像验证中的异常处理,防止无效 URL 导致崩溃。
- 修复了 NPC 加载期间出现的
defineId called for:警告消息。 - 重构了具有多级防御和速率限制的纹理加载架构。
- 重构了实体数据注册逻辑以提高可维护性。
- 将数据类转换为现代 Java 记录,以增强不可变性和线程安全性。
- 添加了基于 ConcurrentHashMap 的线程安全会话服务器防垃圾保护。
- 添加了全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进了纹理加载,采用 2 线程池和 500ms 速率限制。
- 改进了异常处理,针对 IIOException 和 FileNotFoundException 添加了特定捕获块。
6.5.2
- 修复了村民职业和工作皮肤问题。
- 通过为 Gradle 依赖项添加缓存来改进 GitHub 工作流。
- 改进了 Gradle 构建时间和清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型和事件来修复 #632。
- 通过改进纹理处理性能、缓存和内存使用来修复 #629。
- 修复了击杀命令对 NPC 无效的问题。
- 修复了纹理重载保护在缓存逐出后阻止重新加载的问题。
- 修复了远程图像验证器中 WebP 验证的 bug(缺少返回语句)。
- 重构了纹理处理逻辑以提高可维护性和未来改进空间。
- 添加了基于时间的重载保护(60 秒),取代永久阻塞机制。
- 为纹理处理添加了额外的单元测试。
- 改进了 Gradle 构建任务。
6.5.0
- ⚠️ 移除了 jar-in-jar 打包方式,以提升模组兼容性和 API 功能。
- 修复了 #627 中剪刀实现以更好兼容其他模组。
- 修复了 #625 中使用旋转或移动模型部件时的动态动画问题。
- 修复了使用缩放模型部件时默认动画被取消的问题。
- 添加了更佳的姿势动画控制,支持智能、默认和无选项。
6.4.1
- 修复了 #626 中不同 NPC UUID 的屏幕切换逻辑,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话框数据验证和错误处理来修复 #626。
- 通过重构渲染数据和渲染处理来修复 #623。
- 确保自定义数据正确保存和加载,修复了 #622。
- 修复了打开对话框动作类型,允许从其他 NPC 打开对话框。
- 通过为 ConditionDataSet 和 ActionDataSet 添加
Easy NPC (Bundle) 6.6.0
on 2026 Jan 05更新日志:Easy NPC:地核 (1.21.1)
注意
此更新日志包含简要的变更说明。
完整更新日志请参阅 [GitHub 历史记录][history]。
注意:在升级到新版本前,请务必备份您的世界/NPC!
更多信息请查看 [升级指南][upgrade_guide]。
6.6.0
- 通过使用专用线程池实现异步纹理加载,修复了 #634。
- 修复了纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作修复了纹理重载保护中的竞态条件问题。
- 修复了远程纹理下载期间 HTTP 连接的资源泄漏。
- 修复了 URL 验证垃圾信息,防止对同一纹理同时进行多次下载。
- 修复了远程图像验证的异常处理,避免因无效 URL 导致崩溃。
- 修复了 NPC 加载期间出现的
defineId called for:警告消息。 - 重构纹理加载架构,增加多层防护和速率限制。
- 重构实体数据注册逻辑,提高可维护性。
- 将数据类转换为现代 Java 记录(records),以增强不可变性和线程安全性。
- 添加基于 ConcurrentHashMap 的线程安全会话服务器防垃圾保护。
- 添加全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进纹理加载:采用 2 线程池并设置 500ms 速率限制。
- 改进异常处理,针对 IIOException 和 FileNotFoundException 使用特定捕获块。
6.5.2
- 修复村民职业与工作皮肤问题。
- 通过为 Gradle 依赖添加缓存来优化 GitHub 工作流。
- 优化 Gradle 构建时间和清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型和事件来修复 #632。
- 通过改进纹理处理性能、缓存机制和内存使用来修复 #629。
- 修复击杀命令在 NPC 上无效的问题。
- 修复纹理重载保护阻止缓存逐出后重新加载的问题。
- 修复远程图像验证器中 WebP 校验的 Bug(缺少返回语句)。
- 重构纹理处理逻辑,提升可维护性并支持未来改进。
- 添加基于时间的重载保护(60 秒),取代永久性阻断机制。
- 为纹理处理添加额外单元测试。
- 优化 Gradle 构建任务。
6.5.0
- ⚠️ 移除 jar-in-jar 打包方式,以提升模组兼容性和 API 功能。
- 修复 #627,改进剪刀(scissor)实现,增强与其他模组的兼容性。
- 修复 #625,解决使用旋转或移动模型部件时的生动动画问题。
- 修复使用缩放模型部件时默认动画被取消的问题。
- 添加更优的姿势动画控制选项:智能、默认和无。
6.4.1
- 修复 #626,改进不同 NPC UUID 的屏幕切换逻辑,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话框数据验证和错误处理来修复 #626。
- 通过重构渲染数据和渲染处理来修复 #623。
- 确保自定义数据正确保存和加载,修复 #622。
- 修复打开对话框动作类型,允许从其他 NPC 打开对话框。
- 通过为 ConditionDataSet 和 ActionDataSet 添加缺失的 equals 和 hashCode 方法来修复哈
Easy NPC (Bundle) 6.6.0
on 2026 Jan 05Easy NPC (1.20.1) 更新日志
说明
本更新日志包含变更的简要总结。
如需完整更新日志,请前往 [GitHub 历史记录][history]。
注意:更新到新版本前请务必备份您的世界/NPC!
更多信息请查看 [升级指南][upgrade_guide]。
6.6.0
- 通过使用专用线程池实现异步纹理加载,修复了 #634。
- 修复了纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作修复了纹理重载保护中的竞争条件问题。
- 修复了远程纹理下载期间 HTTP 连接的资源泄漏问题。
- 修复了 URL 验证垃圾信息允许同一纹理同时多次下载的问题。
- 修复了远程图像验证的异常处理,防止因无效 URL 导致崩溃。
- 修复了 NPC 加载期间出现的
defineId called for:警告消息。 - 重构了具有多层防护和速率限制的纹理加载架构。
- 重构了实体数据注册逻辑以提高可维护性。
- 将数据类转换为现代 Java 记录,以提升不可变性和线程安全性。
- 添加了基于 ConcurrentHashMap 的线程安全会话服务器防垃圾保护。
- 添加了全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进了纹理加载,采用 2 线程池并设置 500ms 速率限制。
- 改进了异常处理,针对 IIOException 和 FileNotFoundException 使用特定捕获块。
6.5.2
- 修复了村民职业和工作皮肤问题。
- 通过为 Gradle 依赖项添加缓存来改进 GitHub 工作流。
- 改进了 Gradle 构建时间和清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型和事件修复了 #632。
- 通过改进纹理处理性能、缓存和内存使用修复了 #629。
- 修复了击杀命令在 NPC 上无法生效的问题。
- 修复了纹理重载保护阻止缓存在逐出后重新加载的问题。
- 修复了远程图像验证器中 WebP 验证的 bug(缺少 return 语句)。
- 重构了纹理处理逻辑,以便于维护和未来改进。
- 添加了基于时间的重载保护(60 秒),取代永久阻断机制。
- 为纹理处理增加了额外的单元测试。
- 改进了 Gradle 构建任务。
6.5.0
- ⚠️ 移除了 jar-in-jar 打包方式,以提升模组兼容性和 API 功能。
- 修复了 #627,改进剪裁(scissor)实现以更好兼容其他模组。
- 修复了 #625,解决了使用旋转或移动模型部件时的动态动画问题。
- 修复了使用缩放模型部件时默认动画被取消的问题。
- 增加了更佳的姿势动画控制,支持智能、默认和无选项。
6.4.1
- 修复了 #626,改进了不同 NPC UUID 的屏幕切换逻辑,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话数据验证和错误处理修复了 #626。
- 通过重构渲染数据和渲染处理修复了 #623。
- 确保自定义数据能够正确保存和加载,修复了 #622。
- 修复了打开对话动作类型,允许从其他 NPC 打开对话。
- 通过为
Easy NPC (Bundle) 6.6.0
on 2026 Jan 05Easy NPC (1.20.1) 更新日志
注意
此更新日志包含变更的摘要。
如需完整更新日志,请访问 [GitHub 历史记录][history]。
注意:在升级到新版本之前,请务必备份您的世界/NPC!
更多信息请参阅 [升级指南][upgrade_guide]。
6.6.0
- 通过使用专用线程池实现异步纹理加载,修复了 #634。
- 修复了纹理加载阻塞渲染线程导致游戏卡顿的问题。
- 使用原子操作修复了纹理重载保护中的竞态条件问题。
- 修复了远程纹理下载期间 HTTP 连接的资源泄漏。
- 修复了 URL 验证垃圾信息允许同时多次下载相同纹理的问题。
- 修复了远程图像验证中的异常处理,防止因无效 URL 导致崩溃。
- 修复了 NPC 加载期间出现的
defineId called for:警告消息。 - 重构了具有多层防护和速率限制的纹理加载架构。
- 重构了实体数据注册逻辑以提高可维护性。
- 将数据类转换为现代 Java 记录,以增强不可变性和线程安全性。
- 添加了基于 ConcurrentHashMap 的线程安全会话服务器防垃圾保护。
- 添加了全面的错误恢复机制,在失败时自动重置冷却时间。
- 改进了纹理加载,采用 2 线程池和 500ms 速率限制。
- 改进了异常处理,针对 IIOException 和 FileNotFoundException 添加了特定捕获块。
6.5.2
- 修复了村民职业和工作皮肤问题。
- 通过为 Gradle 依赖添加缓存来改进 GitHub 工作流。
- 改进了 Gradle 构建时间和清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型和事件修复了 #632。
- 通过改进纹理处理性能、缓存和内存使用修复了 #629。
- 修复了击杀命令对 NPC 无效的问题。
- 修复了纹理重载保护在缓存逐出后阻止重新加载的问题。
- 修复了远程图像验证器中 WebP 验证的 bug(缺少 return 语句)。
- 重构了纹理处理逻辑,以提高可维护性和未来改进空间。
- 添加了基于时间的重载保护(60 秒),取代永久性阻塞机制。
- 为纹理处理添加了额外的单元测试。
- 改进了 Gradle 构建任务。
6.5.0
- ⚠️ 移除了 jar-in-jar 打包方式,以提升模组兼容性和 API 功能。
- 通过改进剪刀实现以更好地兼容其他模组,修复了 #634。
- 修复了 #625 在使用旋转或移动模型部件时的生动动画问题。
- 修复了当使用缩放模型部件时默认动画被取消的问题。
- 添加了更佳的姿态动画控制,支持智能、默认和无选项。
6.4.1
- 通过改进不同 NPC UUID 的屏幕切换逻辑修复了 #626,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话框数据验证和错误处理修复了 #626。
- 通过重构渲染数据和渲染处理修复了 #623。
- 确保自定义数据正确保存和加载,修复了 #622。
- 修复了打开对话框动作类型,允许从其他 NPC 打开对话框。
- 通过为 ConditionDataSet 和 ActionDataSet
Easy NPC (Bundle) 6.5.2
on 2026 Jan 01Easy NPC:地核 (1.21.1) 更新日志
注意
此更新日志包含变更的摘要。 完整更新日志请参阅 GitHub 历史记录。
注意:升级到新版本前,请务必备份您的世界/NPC数据! 更多信息请查看 升级指南。
6.5.2
- 修复村民职业和工作皮肤问题。
- 通过为 Gradle 依赖项添加缓存来改进 GitHub 工作流。
- 改进 Gradle 构建时间和清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型和事件修复 #632。
- 通过改进纹理处理性能、缓存和内存使用情况修复 #629。
- 修复击杀命令在NPC上无效的问题。
- 修复因纹理重载保护机制导致缓存清除后无法重新加载的问题。
- 修复远程图像验证器中的 WebP 验证错误(缺少返回语句)。
- 重构纹理处理逻辑,以提高可维护性和未来改进空间。
- 添加基于时间的重载保护(60秒),取代永久性阻断机制。
- 为纹理处理添加更多单元测试。
- 改进 Gradle 构建任务。
6.5.0
- ⚠️ 移除 jar-in-jar 打包方式,以提升模组兼容性和 API 能力。
- 修复 #627,改进剪刀实现以增强与其他模组的兼容性。
- 修复 #625,解决使用旋转或移动模型部件时的动态动画问题。
- 修复使用缩放模型部件时默认动画被取消的问题。
- 新增更智能的姿态动画控制选项:智能、默认和无。
6.4.1
- 修复 #626 中不同 NPC UUID 的屏幕切换逻辑,感谢
Spawnblade提供详细调查与修复建议。
6.4.0
- 通过改进对话数据验证和错误处理修复 #626。
- 通过重构渲染数据和渲染处理修复 #623。
- 确保自定义数据正确保存和加载,修复 #622。
- 修复打开对话动作类型,允许从其他NPC打开对话。
- 通过为 ConditionDataSet 和 ActionDataSet 添加缺失的 equals 和 hashCode 方法修复哈希问题。
- 为 #622 添加自定义数据测试物品,便于测试自定义数据。
- 改进记录并修复潜在的数据缺失问题。
6.3.0
- 重构配置UI专用组件,并将其从核心模组中移除。
- 修复对话数据,在发送至客户端前过滤数据。
- 修复对话编辑器布局问题并提升可用性。
- 修复部分对话数据字段缺少默认值的问题。
- 添加对话优先级支持,用于控制对话执行顺序。
- 为对话和计分板动作添加条件支持。
- 添加对话频率支持,限制对话显示次数。
- 为支持计分板和条件功能新增NPC预设。
- 通过移除冗余字段优化对话按钮数据格式。
6.2.0
- 修复对话中的字符串注入问题。
- 修复动作类型的翻译缺失问题。
- 添加计分板动作类型,用于增加、减少或设置计分板数值。
- 添加
@score(...)NPC 宏,用于在对话中显示计分板值。 - 添加额外的单元测试。
- 改进旋钮按钮,增加指示器并提升可用性。
6.1.2
- 修复容器和菜单同步问题(缺少关闭容器数据包)。
- 修复某些情况下关闭按钮无效的问题。
- 修复屏幕切换期间鼠标光标跳跃问题。
- 修复翻译文件,移除重复和已弃用条目。
- 修复部分菜单中鼠标滚轮滚动失效的问题。
- 将 Easy NPC 魔杖移至现有的地核物品标签页,而非创建新标签页。
- 为不同模型部件(尾巴除外)添加猫姿态支持。
- 通过在不需要时禁用发光效果,提升 EasyNPCWand 发光性能。
- 改进自定义实体检测,排除显示实体、标记、投掷物和刷怪笼等非生物实体。
- 改进猫变种处理。
6.1.1
- 通过重新验证实体类型修复 #612。
- 通过对特定模型强制同步帽子和头部图层修复 #610。
- 修复兽人纹理问题。
- 通过将相关逻辑移至客户端,改进自定义模型支持和性能。
- 改进玩家到UUID映射的缓存机制,用于玩家皮肤。
- 将更改模型的命令和逻辑限制仅适用于 Doppler NPC。
6.1.0 ✨
这是一个重大版本更新。更新前请务必备份您的世界和NPC数据。 本版本包含大量改进、优化和内部变更,与早期版本不完全兼容。
⚠️ 破坏性变更
- 6.1.0 之前的现有NPC及其配置数据可能无法正确加载,或需要手动调整。
- 内部数据格式和部分行为已重构,以支持新的使用场景。
🧩 新的模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC — 包含地核和配置UI的整合包,提供即插即用体验。
- Easy NPC:地核 — 轻量级NPC运行时和逻辑,依赖最少。适用于服务器、整合包和开发者。
- Easy NPC:配置UI — 独立的NPC配置界面,用于创建和编辑NPC。可安装在需要UI的客户端上。
🎯 为何如此变更?
- 允许服务器和整合包仅在服务端部署 地核 模组,实现更轻量的配置。
- 在无需UI的环境中减少内存占用和加载时间。
- 通过分离UI与核心逻辑,加快开发和测试速度。
Easy NPC (Bundle) 6.5.2
on 2026 Jan 01Easy NPC:地核 (1.21.1) 更新日志
注意
本更新日志包含变更的摘要。
如需完整更新日志,请前往 GitHub 历史记录。
注意:在升级到新版本前,请务必备份您的世界和NPC数据!
更多信息请查看 升级指南。
6.5.2
- 修复村民职业和工作皮肤的问题。
- 通过为 Gradle 依赖项添加缓存来优化 GitHub 工作流。
- 优化 Gradle 构建时间和清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型和事件来修复 #632。
- 通过改进纹理处理性能、缓存和内存使用来修复 #629。
- 修复击杀命令对NPC无效的问题。
- 修复纹理重载保护机制阻止缓存重新加载的问题。
- 修复远程图像验证器中的 WebP 验证错误(缺少返回语句)。
- 重构纹理处理逻辑,以提高可维护性和未来扩展性。
- 添加基于时间的重载保护机制(60秒),取代永久性阻断机制。
- 为纹理处理添加额外的单元测试。
- 优化 Gradle 构建任务。
6.5.0
- ⚠️ 移除 jar-in-jar 打包方式,以提升模组兼容性和 API 能力。
- 修复 #627,改进剪裁(scissor)实现,增强与其他模组的兼容性。
- 修复 #625,解决在使用旋转或移动模型部件时生动动画出现的问题。
- 修复在使用缩放模型部件时默认动画被取消的问题。
- 新增更智能的姿态动画控制选项:智能、默认和无。
6.4.1
- 修复 #626,改进不同 NPC UUID 的界面切换逻辑,感谢
Spawnblade提供详细调查和修复建议。
6.4.0
- 通过改进对话数据验证和错误处理来修复 #626。
- 通过重构渲染数据和渲染处理来修复 #623。
- 确保自定义数据正确保存和加载,修复 #622。
- 修复打开对话动作类型,允许从其他 NPC 触发对话。
- 通过为 ConditionDataSet 和 ActionDataSet 添加缺失的 equals 和 hashCode 方法来修复哈希问题。
- 为 #622 添加自定义数据测试物品,便于测试自定义数据功能。
- 优化记录结构并修复潜在的数据缺失问题。
6.3.0
- 重构配置UI专用组件,并将其从核心模组中移除。
- 修复对话数据,在发送至客户端前进行过滤。
- 修复对话编辑器布局问题并提升可用性。
- 修复部分对话数据字段缺少默认值的问题。
- 添加对话优先级支持,用于控制对话执行顺序。
- 为对话和计分板动作添加条件支持。
- 添加对话频率支持,限制对话显示次数。
- 添加新的NPC预设,支持计分板和条件功能。
- 通过移除冗余字段优化对话按钮数据格式。
6.2.0
- 修复对话中的字符串注入问题。
- 修复动作类型缺少翻译的问题。
- 添加计分板动作类型,支持增加、减少或设置计分板数值。
- 添加
@score(...)NPC 宏,用于在对话中显示计分板值。 - 添加额外的单元测试。
- 改进旋转按钮,增加指示器并提升可用性。
6.1.2
- 修复容器与菜单同步问题,补充缺失的关闭容器数据包。
- 修复某些情况下关闭按钮无效的问题。
- 修复界面切换期间鼠标光标跳跃的问题。
- 修复翻译文件,移除重复和已弃用条目。
- 修复某些菜单中鼠标滚轮滚动失效的问题。
- 将 Easy NPC 魔杖移至现有的地核物品标签页,而非创建新标签页。
- 添加猫姿态支持,适用于不同模型部件(尾巴除外)。
- 通过在不需要时禁用发光效果来优化 EasyNPCWand 的性能。
- 改进自定义实体检测,排除非生物实体如显示体、标记、投掷物和刷怪笼。
- 改进猫变种的处理。
6.1.1
- 通过重新验证实体类型来修复 #612。
- 强制同步特定模型的帽子和头部图层以修复 #610。
- 修复兽人纹理问题。
- 通过将相关逻辑移至客户端侧,提升自定义模型支持和性能。
- 改进玩家皮肤的 UUID 映射缓存。
- 将更改模型的命令和逻辑限制仅适用于多普勒NPC。
6.1.0 ✨
这是一次重大更新。请在更新前备份您的世界和 NPC 数据。
此版本包含大量改进、优化和内部变更,与早期版本不完全兼容。
⚠️ 破坏性变更
- 来自 6.1.0 之前版本的现有 NPC 及其配置数据可能无法正确加载,或需要手动调整。
- 内部数据格式和部分行为已被重构,以支持新的使用场景。
🧩 新的模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC —— 包含地核和配置 UI 的整合包,提供即插即用体验。
- Easy NPC:地核 —— 轻量级运行时和 NPC 核心逻辑,依赖极少。适用于服务器、整合包和开发者。
- Easy NPC:配置 UI —— 独立的配置界面,用于创建和编辑 NPC。可安装在需要 UI 的客户端上。
🎯 此变更的原因?
- 允许服务器和整合包仅在服务端部署 地核 模组,实现更轻量的配置。
- 在无需 UI 的环境中减少内存占用和加载时间。
- 通过分离 UI 与核心逻辑,加快开发和测试速度。
Easy NPC (Bundle) 6.5.2
on 2026 Jan 01Easy NPC:地核 (1.20.1) 更新日志
注意
此更新日志包含变更的摘要。
如需完整更新日志,请前往 GitHub 历史记录。
注意:更新到新版本前,请务必备份您的世界/NPC!
更多信息请查看 升级指南。
6.5.2
- 修复村民职业和工作皮肤问题。
- 通过为 Gradle 依赖项添加缓存来优化 GitHub 工作流。
- 优化 Gradle 构建时间和清理任务。
6.5.1
- 通过实现 ON_KILL 动作类型和事件来修复 #632。
- 通过改进纹理处理性能、缓存和内存使用来修复 #629。
- 修复击杀命令在NPC上无效的问题。
- 修复因纹理重载保护机制导致缓存清除后无法重新加载的问题。
- 修复远程图像验证器中的 WebP 验证错误(缺少返回语句)。
- 重构纹理处理逻辑,以提高可维护性和未来改进空间。
- 添加基于时间的重载保护机制(60秒),替代永久性阻塞机制。
- 为纹理处理添加更多单元测试。
- 优化 Gradle 构建任务。
6.5.0
- ⚠️ 移除 jar-in-jar 打包方式,以提升模组兼容性和 API 能力。
- 修复 #627,改进剪刀实现以增强与其他模组的兼容性。
- 修复 #625,在使用旋转或移动模型部件时出现的动画异常问题。
- 修复使用缩放模型部件时默认动画被取消的问题。
- 新增更智能的姿态动画控制选项:智能、默认和无。
6.4.1
- 修复 #626 中不同 NPC UUID 的界面切换逻辑,感谢
Spawnblade提供详细调查与修复建议。
6.4.0
- 通过改进对话数据验证和错误处理来修复 #626。
- 通过重构渲染数据和渲染处理来修复 #623。
- 确保自定义数据能够正确保存和加载,修复 #622。
- 修复打开对话动作类型,允许从其他 NPC 触发对话。
- 通过为 ConditionDataSet 和 ActionDataSet 补充缺失的 equals 和 hashCode 方法来修复哈希问题。
- 为 #622 添加自定义数据测试物品,便于测试自定义数据功能。
- 优化记录结构并修复潜在的数据缺失问题。
6.3.0
- 重构配置UI专用组件,并将其从核心模组中移除。
- 修复对话数据问题,在发送至客户端前过滤对话数据。
- 修复对话编辑器布局问题并提升可用性。
- 修复部分对话数据字段缺少默认值的问题。
- 新增对话优先级支持,用于控制对话执行顺序。
- 为对话和计分板动作新增条件支持。
- 为对话新增频率支持,限制对话显示次数。
- 新增支持计分板和条件的预设NPC。
- 通过移除冗余字段优化对话按钮数据格式。
6.2.0
- 修复对话中的字符串注入问题。
- 修复动作类型缺少翻译的问题。
- 新增计分板动作类型,支持增加、减少、设置计分板数值。
- 新增
@score(...)NPC 宏,用于在对话中显示计分板数值。 - 添加额外的单元测试。
- 改进旋钮按钮,增加指示器并提升可用性。
6.1.2
- 修复容器与菜单同步问题(缺少关闭容器数据包)。
- 修复某些情况下关闭按钮无效的问题。
- 修复界面切换期间鼠标光标跳跃问题。
- 修复翻译文件,移除重复和已弃用条目。
- 将 Easy NPC 魔杖移至现有的地核物品标签页,而非创建新标签页。
- 新增对不同模型部件的猫姿态支持(尾巴除外)。
- 通过在不需要时禁用发光效果来优化 EasyNPCWand 的性能。
- 改进自定义实体检测,排除显示实体、标记、投掷物和刷怪笼等非生物实体。
- 优化猫变种处理。
6.1.1
- 通过重新验证实体类型修复 #612。
- 强制同步特定模型的帽子和头部图层以修复 #610。
- 修复兽人纹理问题。
- 通过将相关逻辑移至客户端侧来改进自定义模型支持和性能。
- 优化玩家皮肤的玩家到 UUID 映射缓存。
- 限制更改模型的命令和逻辑仅适用于 Doppler NPC。
6.1.0 ✨
这是一次重大版本更新。更新前请务必备份您的世界和 NPC 数据。
本版本包含大量改进、优化和内部结构调整,与早期版本不完全兼容。
⚠️ 破坏性变更
- 6.1.0 之前的现有 NPC 及其配置数据可能无法正确加载,或需要手动调整。
- 内部数据格式和部分行为已重构,以支持新的使用场景。
🧩 新的模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC — 包含地核与配置 UI 的整合包,提供即插即用体验。
- Easy NPC:地核 — 轻量级 NPC 运行时与逻辑组件,依赖最少。适用于服务器、整合包和开发者。
- Easy NPC:配置 UI — 独立的 NPC 创建与编辑配置界面。可在需要 UI 的客户端单独安装。
🎯 此变更目的
- 允许服务器和整合包仅在服务端部署 地核 模组,实现更轻量的配置。
- 在无需 UI 的环境中减少内存占用和加载时间。
- 通过分离 UI 与核心逻辑,加快开发与测试速度。
Easy NPC (Bundle) 6.5.2
on 2026 Jan 01Easy NPC:地核 (1.20.1) 更新日志
注意
本更新日志包含简要的变更摘要。
完整更新日志请参阅 GitHub 历史记录。
注意:升级到新版本前,请务必备份您的世界和NPC数据!
更多信息请查看 升级指南。
6.5.2
- 修复村民职业与工作皮肤的问题。
- 通过为 Gradle 依赖项添加缓存,优化 GitHub 工作流。
- 改进 Gradle 构建时间和清理任务。
6.5.1
- 修复 #632:实现 ON_KILL 动作类型及事件。
- 修复 #629:改进纹理处理性能、缓存机制和内存使用。
- 修复击杀命令对NPC无效的问题。
- 修复因纹理重载保护机制导致缓存清除后无法重新加载的问题。
- 修复远程图像验证器中 WebP 校验的 bug(缺少返回语句)。
- 重构纹理处理逻辑,提升可维护性并便于未来改进。
- 添加基于时间的重载保护机制(60秒),取代原有的永久阻塞机制。
- 为纹理处理新增更多单元测试。
- 优化 Gradle 构建任务。
6.5.0
- ⚠️ 移除 jar-in-jar 打包方式,以提升模组兼容性和 API 能力。
- 修复 #627:改进剪刀功能,增强与其他模组的兼容性。
- 修复 #625:解决在使用旋转或移动模型部件时出现的动画异常问题。
- 修复当使用缩放模型部件时默认动画被取消的问题。
- 新增更智能的姿态动画控制选项:智能、默认和无。
6.4.1
- 修复 #626:改进不同 NPC UUID 下的界面切换逻辑,感谢
Spawnblade提供详细分析和修复建议。
6.4.0
- 修复 #626:通过改进对话数据校验和错误处理来解决问题。
- 修复 #623:重构渲染数据和渲染处理逻辑。
- 修复 #622:确保自定义数据能够正确保存和加载。
- 修复打开对话动作类型,允许从其他 NPC 触发对话。
- 修复哈希问题,在 ConditionDataSet 和 ActionDataSet 中补充缺失的 equals 和 hashCode 方法。
- 为 #622 添加自定义数据测试物品,便于测试自定义数据功能。
- 优化记录结构,并修复潜在的数据缺失问题。
6.3.0
- 重构配置界面专用组件,并将其从核心模组中移除。
- 修复对话数据问题,发送至客户端前先进行过滤。
- 修复对话编辑器布局问题,提升可用性。
- 修复部分对话数据字段缺少默认值的问题。
- 新增对话优先级支持,用于控制对话执行顺序。
- 为对话和计分板动作添加条件支持。
- 为对话添加频率支持,限制对话显示次数。
- 新增支持计分板和条件系统的预设 NPC。
- 优化对话按钮数据格式,移除冗余字段。
6.2.0
- 修复对话中的字符串注入问题。
- 修复动作类型缺少翻译的问题。
- 新增计分板动作类型,支持增加、减少或设置计分板数值。
- 新增
@score(...)NPC 宏,用于在对话中显示计分板值。 - 添加额外的单元测试。
- 改进旋钮按钮,增加指示器并提升可用性。
6.1.2
- 修复容器与菜单同步问题,补充缺失的关闭容器数据包。
- 修复某些情况下关闭按钮无效的问题。
- 修复界面切换期间鼠标光标跳跃的问题。
- 修复翻译文件,移除重复和已弃用条目。
- 将 Easy NPC 魔杖移至现有的核心物品标签页,不再创建新标签页。
- 新增猫姿态支持,适用于不同模型部件(尾巴除外)。
- 通过在不需要时禁用发光效果,优化 EasyNPCWand 的性能。
- 改进自定义实体检测机制,排除显示实体、标记、投掷物和刷怪笼等非生物实体。
- 优化猫变种处理逻辑。
6.1.1
- 修复 #612:重新验证实体类型。
- 修复 #610:强制同步特定模型的帽子与头部图层。
- 修复兽人纹理问题。
- 通过将相关逻辑移至客户端,改进自定义模型支持和性能。
- 优化玩家皮肤的 UUID 映射缓存。
- 将更改模型的命令和逻辑限制仅适用于 Doppler NPC。
6.1.0 ✨
这是一次重大版本更新。升级前请务必备份您的世界和 NPC 数据。
本版本包含大量改进、优化和内部结构调整,与早期版本不完全兼容。
⚠️ 破坏性变更
- 6.1.0 之前版本的现有 NPC 及其配置数据可能无法正常加载,或需要手动调整。
- 内部数据格式和部分行为已重构,以支持新的使用场景。
🧩 新的模块化结构
Easy NPC 现已拆分为三个独立模组:
- Easy NPC — 包含核心与配置界面的整合包,提供即插即用体验。
- Easy NPC:地核 — 轻量级 NPC 运行时与逻辑核心,依赖最少。适用于服务器、整合包和开发者。
- Easy NPC:配置界面 — 独立的 NPC 创建与编辑界面。仅需在需要 UI 的客户端安装。
🎯 此次变更的目的?
- 允许服务器和整合包仅在服务端部署 地核 模组,实现更轻量的配置。
- 在无需界面时减少内存占用和加载时间。
- 通过分离 UI 与核心逻辑,加快开发与测试速度。



