BBSMC Logo
模组整合包光影资源包软件汉化插件数据包
登录
模组插件数据包光影资源包整合包软件汉化
登录
设置
简易 NPC  -   Easy NPC
简易 NPC  -   Easy NPC

简易 NPC - Easy NPC

为你的世界或模组轻松创建带有对话的 NPC。

1,0424a year ago
简易 NPC  -   Easy NPC

简易 NPC - Easy NPC

为你的世界或模组轻松创建带有对话的 NPC。

1,042
4

基本信息

我的世界Java版本

1.21.3
1.21–1.21.1
1.20.1–1.20.2
1.19.2
1.18.2

平台

\n \n \n Fabric
\n \n \n Forge
NeoForge
\n \n \n \n \n \n \n \n \n Quilt

运行环境

客户端和服务端

其他链接

反馈问题 查看源码
Modrinth

搬运团队

BBSMC 官方搬运(1)
BBSMC 官方搬运(1)团队

搬运资源声明

对于可进行 JAR 文件搬运的许可证,我们提供站内下载服务;其他资源会跳转到原帖下载。资源更新可能不及时,建议前往资源内提供的原帖链接下载最新版本。

详情信息

许可证 MIT
发布于 2025-01-03
更新于 2026-03-13
简介渲染图更新日志版本百科反馈讨论

全部版本

1
2
15

Easy NPC (Bundle) 6.10.0

on 2026 Mar 13
下载

Easy NPC (Bundle) 6.10.0

on 2026 Mar 13
下载

Changelog for Easy NPC (1.20.1)

Note

This change log includes the summarized changes. For the full changelog, please go to the [GitHub History][history] instead.

Note: Please always back up your world / NPCs before updating to a new version! Check the [upgrade guide][upgrade_guide] for more information.

6.10.0

  • Fixed #695 by clearing model part rotations/positions when switching to a DEFAULT vanilla pose.
  • Fixed #695 by applying lock rotation and pose animation only when the NPC is idle.
  • Fixed #695 by correcting root rotation pivot to use actual bounding box height instead of 0.5f.
  • Fixed multiple objective registration issues including inverted isTargetedPlayer check, wrong UUID in leave-handler, missing player-targeted refresh on join/leave, and retry for offline targets.
  • Fixed goal reference being retained after objective is unregistered.
  • Removed auto-lock of ROOT rotation when loading poses; root lock is now user-controlled.
  • Added lock rotation checkbox to the advanced and custom pose configuration screens.
  • Added model-specific pose key filtering in ConfigurationMenuHandler for the default pose screen.
  • Added unit tests for CustomPosition, CustomRotation, CustomScale, ModelPose, ModelAnimationBehavior and ModelAnimationData.
  • Added NPCDataIsolationTestHelper and game tests for Fabric and Forge.
  • Increased max head yaw range from 60° to 65°.

6.9.0

  • Fixed #692, #666 by adding caching and safeguards to prevent redundant retriggering of NPC entity data updates.
  • Fixed #651, #617 by adding basic custom poses for all supported NPC types.
  • Fixed #597 by adding additional Flee goals for fleeing from players, villagers, monsters, ...
  • Fixed pose loading to read directly from mod resources instead of copying files to disk.
  • Fixed duplicate saveNPC calls on entity join by checking existing registry entry first.
  • Added despawn and spawn commands to remove and re-spawn NPCs by UUID with configurable removal reasons.
  • Added ModelPoseAPI and EasyNPCEntityHandler public API classes for controlling NPC poses and managing NPCs programmatically from external mods.
  • Added pose data files for all supported NPC types.
  • Added lock rotation checkbox to the basic pose configuration screen.
  • Added MoveToPositionGoal to move an NPC to a position before executing a callback action.
  • Added EasyNPCLookControl and EasyNPCBodyRotationControl to respect locked root rotation.
  • Added synced owner change and dimension change to the NPC entity data index.
  • Added EasyNPCItemAttachmentLayer into various entity renderers.
  • Added dedicated Flee Objective configuration tab with objectives for fleeing creepers, monsters, mobs, players, villagers and the sun.
  • Added FOLLOW_ITEM objective to the follow objectives tab to make NPCs follow item entities by resource location (e.g. minecraft:apple).
  • Added LookAtEntityByUUIDGoal and enabled the look-at-entity-by-UUID and look-at-owner objectives in the look objectives screen.
  • Added persistent flag to SynchedDataIndex so that transient indices (e.g. crossbow charge, model animation) no longer trigger dirty-save marking.
  • Added configurable customParticlesEnabled flag to SlimeBase for API consumers.
  • Added SoundType.PET and mapped CAT_PURR to the cat NPC for tamed ambient sound variety.
  • Reduced log verbosity for periodic NPC save operations from INFO to DEBUG.

6.8.3

  • Fixed #680 by enforcing version miss-match by upgrading network protocol version.
  • Fixed #679 by resetting position, rotation and size for name tag.
  • Fixed #665 by adding multi state slide for root rotations.
  • Fixed #664 by adding option to disable following mouse cursor for easier posing.
  • Fixed #663 by improve support for X and Z root rotations.
  • Fixed #661 by adding quick rotation with NPC wand and sneaking to the NPC to rotate the root to face the player.
  • Fixed move tool is wrongly triggering interactions by adding check for move tool in interaction handler.
  • Fixed Preset Item is wrongly triggering interactions by adding check for preset item in interaction handler.
  • Fixed Slime and Ghast hitbox and name tag position issues by adjusting bounding box and eye height calculations.
  • Fixed Slime and Ghast GUI position by adjusting offset values.

6.8.2

  • Fixed #677 by extending SafeMerchantData with notifyTrade to avoid crashes.
  • Added progression data support for leveling up NPCs based on player interactions and actions.
  • Added global NPC tracking system for better management and debugging of NPCs across the world.
  • Added OriginalModelConfig.withVariantTexture() option to allow using variant textures with the original model.

6.8.1

  • Fixed #676 by using existing preset helper method instead of custom one.

6.8.0 (Adding API support)

  • Fixed #667 by adding warning messages and additional checks for invalid network packets.
  • Fixed Horse spawn eggs model.
  • Fixed pose support for allay, chicken, creeper, fox, ghast, horse, illager, iron golem, slime and vex.
  • Added NPC base classes for better API support.
  • Added NPC raw classes for advanced API support.
  • Added Slim and Ghast NPC types.
  • Added Custom Model API for easier integration with other mods and custom models.
  • Refactored internal data handling and registration for better maintainability and future improvements.

6.7.1

  • Fixed #657 and #656 by adding additional client side checks for vanilla bug.

6.7.0

  • Fixed #650 by implementing Wolf Leg Animations in setupAnim method.
  • Fixed #648 by fixing canBeHitByProjectiles translation.
  • Fixed #645 by adding allowBypassInvulnerability config option to allow/deny bypassing invulnerability for NPCs.
  • Fixed delete button showing label even with small width.
  • Fixed up and down buttons not positioned correctly in some cases.
  • Fixed name tag showing up for dialog and configuration UI.
  • Fixed distance action issue were multiple actions are not properly triggered.
  • Fixed issues with NPC presets.
  • Fixed Cat NPC and Wolf NPC owner data not syncing properly.
  • Added preset browser for easier selection of common NPC presets.
  • Added preset .snbt (text) export and import functionality for sharing NPC presets.
  • Refactored existing NPC presets to use new .snbt format.
  • Refactored spawner system to use new preset format for better maintainability and future improvements.

6.6.2

  • Fixed #643 by rework scaling system.
  • Fixed scaling not properly updating hitbox and nametag position after restart / reload.
  • Added MID and MOUSE_OVER name tag visibility modes for finer control over NPC name display.
  • Added team-based name tag visibility support respecting vanilla Team.

6.6.1

  • Fixed #638 by refactored internal data handling for display attributes.

6.6.0

  • Fixed #634 by implementing asynchronous texture loading with dedicated thread pool.
  • Fixed texture loading blocking render thread causing game freezes.
  • Fixed race conditions in texture reload protection using atomic operations.
  • Fixed resource leaks in HTTP connections during remote texture downloads.
  • Fixed URL validation spam allowing multiple simultaneous downloads of the same texture.
  • Fixed exception handling for remote image validation preventing crashes on invalid URLs.
  • Fixed defineId called for: warning messages during NPC loading.
  • Refactored texture loading architecture with multi-level defense and rate limiting.
  • Refactored entity data registration logic for better maintainability.
  • Converted data classes to modern Java records for better immutability and thread-safety.
  • Added thread-safe session server spam protection with ConcurrentHashMap.
  • Added comprehensive error recovery with automatic cooldown reset on failures.
  • Improved texture loading with 2-thread pool and 500ms rate limiting.
  • Improved exception handling with specific catch blocks for IIOException and FileNotFoundException.

6.5.

... [内容过长已截断]

Easy NPC (Bundle) 6.9.0

on 2026 Mar 11
下载

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 与核心逻辑,加快开发与测试效率。

Easy NPC (Bundle) 6.9.0

on 2026 Mar 11
下载

Easy NPC (1.20.1) 更新日志

注意

本更新日志仅包含变更摘要。 完整更新日志请前往 GitHub History 查看。

注意:更新到新版本前,请务必备份你的世界/NPC! 更多信息请查看升级指南。

6.9.0

  • 修复 #692、#666:添加缓存与防护措施,防止 NPC 实体数据更新被重复触发。
  • 修复 #651、#617:为所有支持的 NPC 类型添加基础自定义姿势。
  • 修复 #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:新增可选项,禁用跟随鼠标光标,便于摆姿势。
  • 修复 #663:改进对 X 与 Z 根部旋转的支持。
  • 修复 #661:新增使用 Npc 魔杖并潜行的快速旋转,让 NPC 的根部朝向玩家。
  • 修复移动工具错误触发交互:在交互处理程序中增加对移动工具的检查。
  • 修复预设物品错误触发交互:在交互处理程序中增加对预设物品的检查。
  • 修复史莱姆与恶魂的碰撞箱与命名牌位置问题:调整边界框与眼高计算。
  • 修复史莱姆与恶魂的 GUI 位置:调整偏移值。

6.8.2

  • 修复 #677:扩展 SafeMerchantData,加入 notifyTrade 以避免崩溃。
  • 新增进度数据支持:可基于玩家交互与动作让 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:针对原版 Bug 增加额外的客户端检查。

6.7.0

  • 修复 #650:在 setupAnim 方法中实现狼腿部动画。
  • 修复 #648:修正 canBeHitByProjectiles 的翻译。
  • 修复 #645:新增 allowBypassInvulnerability 配置选项,用于允许/禁止绕过 NPC 的铁布衫。
  • 修复删除按钮在宽度较小时仍显示标签。
  • 修复上/下按钮在某些情况下位置不正确。
  • 修复命名牌在对话框与配置 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 使用更具体的捕获。

6.5.2

  • 修复村民职业与工作皮肤问题。
  • 改进 GitHub 工作流:为 gradle 依赖添加缓存。
  • 改进 Gradle 构建时间与清理任务。

6.5.1

  • 修复 #632:实现 ON_KILL 动作类型与事件。
  • 修复 #629:改进材质处理性能、缓存与内存占用。
  • 修复 kill 命令对 NPC 不生效的问题。
  • 修复材质重载保护:避免缓存被逐出后无法重新加载。
  • 修复远程图片校验器中的 WebP 校验 Bug(缺少 return 语句)。
  • 重构材质处理逻辑:提升可维护性并便于未来改进。
  • 新增基于时间的重载保护(60 秒),替代永久阻止机制。
  • 新增额外的单元测试(材质处理)。
  • 改进 gradle 构建任务。

6.5.0

  • ⚠️ 移除 jar-in-jar 打包方式:提升模组兼容性与 API 能力。
  • 修复 #627:改进剪刀实现,以更好兼容其他模组。
  • 修复 #625:使用旋转或移动的模型部件时出现的生动动画问题。
  • 修复使用缩放的模型部件时默认动画被取消的问题。
  • 新增更好的姿势动画控制:smart、default 与 und 选项。

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 的发光效果性能:不需要时禁用。
  • 改进高级实体探测器:排除展示实体、标记实体、投掷物与刷怪笼等非生物实体。
  • 改进猫变种处理。

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 与核心逻辑,让开发与测试更高效。

Easy NPC (Bundle) 6.8.4

on 2026 Feb 26
下载

Easy NPC (1.20.1) 更新日志

注意

本更新日志仅包含摘要性变更。 完整更新日志请前往 GitHub 历史记录。

注意:升级新版本前,请务必备份您的世界/NPC数据! 更多信息请参阅升级指南。

6.8.4

  • 为NPC实体数据中的所有者变更和维度变更添加同步支持。

6.8.3

  • 通过强制升级网络协议版本修复 #680(版本不匹配问题)。
  • 通过重置命名牌的位置、旋转和大小修复 #679。
  • 通过为根部旋转添加多状态滑动功能修复 #665。
  • 通过添加禁用跟随鼠标光标的选项(便于摆姿势)修复 #664。
  • 通过改进对X轴和Z轴根部旋转的支持修复 #663。
  • 通过添加潜行时使用NPC魔杖快速旋转功能(使根部朝向玩家)修复 #661。
  • 通过在交互处理器中添加移动工具检测,修复移动工具错误触发交互的问题。
  • 通过在交互处理器中添加预设物品检测,修复预设物品错误触发交互的问题。
  • 通过调整边界框和眼睛高度计算,修复史莱姆与恶魂的碰撞箱及命名牌位置问题。
  • 通过调整偏移值修复史莱姆与恶魂的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 的翻译问题。
  • 通过新增 allowBypassInvulnerability 配置选项,控制是否允许绕过NPC无敌状态,修复 #645。
  • 修复删除按钮在窄宽度下仍显示标签的问题。
  • 修复上下按钮在某些情况下定位错误的问题。
  • 修复对话框与配置界面中命名牌意外显示的问题。
  • 修复距离动作中多个动作未正确触发的问题。
  • 修复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)。
  • 新增全面错误恢复机制,失败时自动重置冷却时间。
  • 改进材质加载:采用双线程池与500ms速率限制。
  • 改进异常处理:为IIOException与FileNotFoundException添加专用捕获块。

6.5.2

  • 修复村民职业与工作皮肤问题。
  • 通过为Gradle依赖添加缓存改进GitHub工作流。
  • 优化Gradle构建时间与清理任务。

6.5.1

  • 通过实现ON_KILL动作类型与事件修复 #632。
  • 通过优化材质处理性能、缓存与内存占用修复 #629。
  • 修复击杀命令对NPC无效的问题。
  • 修复材质重载保护阻止缓存被驱逐后重新加载的问题。
  • 修复远程图片验证器中的WebP验证错误(缺失return语句)。
  • 重构材质处理逻辑,提升可维护性并为未来改进做准备。
  • 新增基于时间的重载保护(60秒),替代永久屏蔽机制。
  • 新增材质处理的额外单元测试。
  • 优化Gradle构建任务。

6.5.0

  • ⚠️ 移除jar-in-jar捆绑方式,提升模组兼容性与API能力。
  • 通过改进剪刀实现方式修复 #627,提升与其他模组的兼容性。
  • 通过修复旋转或移动模型部件时的生动动画问题修复 #625。
  • 修复使用缩放模型部件时默认动画被取消的问题。
  • 新增智能、默认与无三种姿势动画控制选项。

6.4.1

  • 通过改进不同NPC UUID的屏幕切换逻辑修复 #626,感谢 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: Core – 轻量级NPC运行时与逻辑,依赖极少。适用于服务器、整合包与开发者。
  • Easy NPC: Configuration UI – 用于创建与编辑NPC的独立配置界面。可安装于需要UI的客户端。

🎯 为何如此变更?

  • 允许服务器与整合包仅在服务端部署核心模组,实现更精简配置。
  • 在无需UI时减少内存占用与加载时间。
  • 通过分离UI与核心逻辑,加速开发与测试。

Easy NPC (Bundle) 6.8.4

on 2026 Feb 26
下载

Easy NPC (1.20.1) 更新日志

注意事项

本更新日志仅包含摘要性变更。 完整更新日志请前往 GitHub 历史记录 查阅。

注意:升级新版本前,请务必备份您的世界/NPC 数据! 更多信息请参阅 升级指南。

6.8.4

  • 为 NPC 实体数据中的所有者变更与维度变更添加同步支持。

6.8.3

  • 通过强制升级网络协议版本修复 #680(版本不匹配问题)。
  • 通过重置名称标签的位置、旋转和大小修复 #679。
  • 通过为根部旋转添加多状态滑动功能修复 #665。
  • 通过添加选项禁用跟随鼠标光标,便于摆姿势,修复 #664。
  • 通过增强对 X 和 Z 轴根部旋转的支持修复 #663。
  • 通过添加潜行时使用 NPC 法杖快速旋转根部朝向玩家的功能修复 #661。
  • 通过在交互处理器中增加移动工具检测,修复移动工具错误触发交互的问题。
  • 通过在交互处理器中增加预设物品检测,修复预设物品错误触发交互的问题。
  • 通过调整边界框和眼睛高度计算,修复史莱姆与恶魂的碰撞箱及名称标签位置问题。
  • 通过调整偏移值修复史莱姆与恶魂 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。
  • 修复删除按钮在宽度较小时仍显示标签的问题。
  • 修复上下按钮在某些情况下位置不正确的问题。
  • 修复对话框与配置 GUI 中名称标签意外显示的问题。
  • 修复距离动作触发多个动作时未能正确执行的问题。
  • 修复 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。
  • 修复击杀命令对 NPC 无效的问题。
  • 修复材质重载保护阻止缓存重载的问题。
  • 修复远程图像验证器中的 WebP 验证错误(缺失 return 语句)。
  • 重构材质处理逻辑,提升可维护性并为未来改进做准备。
  • 新增基于时间的重载保护(60 秒),取代永久屏蔽机制。
  • 新增材质处理的额外单元测试。
  • 优化 Gradle 构建任务。

6.5.0

  • ⚠️ 移除 jar-in-jar 打包方式,以提升模组兼容性与 API 功能。
  • 通过改进剪刀实现方式提升与其他模组的兼容性,修复 #627。
  • 修复使用旋转或移动模型部件时生动动画失效的问题(#625)。
  • 修复使用缩放模型部件时默认动画被取消的问题。
  • 新增智能、默认、无三种姿势动画控制选项。

6.4.1

  • 修复不同 NPC UUID 的界面切换逻辑,感谢 Spawnblade 提供详细调查与修复建议(#626)。

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.8.3

on 2026 Feb 18
下载

Easy NPC (1.20.1) 更新日志

注意事项

本更新日志仅包含摘要性变更。
完整更新日志请前往 GitHub 提交历史 查看。

注意:在更新至新版本前,请务必备份你的世界与NPC数据!
更多信息请参阅 升级指南。

6.8.3

  • 通过升级网络协议版本强制校验版本不匹配问题,修复 #680。
  • 通过重置命名牌的位置、旋转和大小,修复 #679。
  • 为根部旋转添加多状态滑动支持,修复 #665。
  • 添加选项以禁用跟随鼠标光标的自动朝向功能,便于调整姿势,修复 #664。
  • 改进对 X 和 Z 轴根部旋转的支持,修复 #663。
  • 在交互处理器中增加移动工具检测,防止移动工具误触发交互,修复相关问题。
  • 在交互处理器中增加预设物品检测,防止预设物品误触发交互,修复相关问题。
  • 通过调整边界框和眼睛高度计算,修复史莱姆与恶魂的碰撞箱及命名牌位置问题。
  • 通过调整偏移值,修复史莱姆与恶魂的 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。
  • 修复删除按钮在宽度较小时仍显示标签的问题。
  • 修复上/下按钮在某些情况下位置不正确的问题。
  • 修复命名牌在对话框与配置界面中意外显示的问题。
  • 修复距离触发动作中多个动作未能正确触发的问题。
  • 修复 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 记录(records),增强不可变性与线程安全性。
  • 使用 ConcurrentHashMap 添加线程安全的会话服务器垃圾信息防护。
  • 添加全面的错误恢复机制,在失败时自动重置冷却时间。
  • 改进材质加载性能:使用 2 线程池并设置 500ms 速率限制。
  • 改进异常处理,为 IIOException 与 FileNotFoundException 添加专用捕获块。

6.5.2

  • 修复村民职业与工作皮肤显示问题。
  • 改进 GitHub 工作流,为 Gradle 依赖添加缓存。
  • 优化 Gradle 构建时间与清理任务。

6.5.1

  • 实现 ON_KILL 动作类型与事件,修复 #632。
  • 优化材质处理性能、缓存与内存使用,修复 #629。
  • 修复对 NPC 使用 kill 命令无效的问题。
  • 修复驱逐后缓存无法重新加载的问题,完善材质重载保护。
  • 修复远程图片验证器中的 WebP 验证漏洞(缺失 return 语句)。
  • 重构材质处理逻辑,提升可维护性并支持未来改进。
  • 添加基于时间的重载保护(60 秒),替代永久性屏蔽机制。
  • 为材质处理添加额外的单元测试。
  • 改进 Gradle 构建任务。

6.5.0

  • ⚠️ 移除 jar-in-jar 捆绑方式,以提升模组兼容性与 API 能力。
  • 改进剪刀功能实现,提升与其他模组的兼容性,修复 #627。
  • 修复使用旋转或移动模型部件时动画异常的问题,修复 #625。
  • 修复使用缩放模型部件时默认动画被取消的问题。
  • 新增更智能的姿势动画控制选项:smart(智能)、default(默认)、none(无)。

6.4.1

  • 修复不同 NPC UUID 间的界面切换逻辑,感谢 Spawnblade 提供详细调查与修复建议,修复 #626。

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 法杖移至现有的核心物品栏,而非创建新栏位。
  • 为猫添加除尾巴外各模型部件的姿势支持。
  • 在无需时禁用 EasyNPCWand 的发光效果,提升性能。
  • 改进自定义实体检测,排除非生物实体(如展示物、造物者、投掷物与刷怪笼)。
  • 改进猫变种处理逻辑。

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 与核心逻辑,加快开发与测试速度。

Easy NPC (Bundle) 6.8.3

on 2026 Feb 18
下载

Easy NPC 更新日志(1.20.1)

注意

本更新日志仅包含简要变更摘要。
完整更新日志请前往 GitHub 提交历史 查看。

注意:在更新至新版本前,请务必备份你的世界/NPC 数据!
更多信息请参阅 升级指南。

6.8.3

  • 通过升级网络协议版本强制校验版本不匹配问题,修复 #680。
  • 通过重置命名牌的位置、旋转和大小,修复 #679。
  • 通过为根部旋转添加多状态滑动支持,修复 #665。
  • 通过添加选项以禁用跟随鼠标光标功能,便于姿势调整,修复 #664。
  • 通过改进对 X 和 Z 轴根部旋转的支持,修复 #663。
  • 通过添加使用 Npc 魔杖并潜行点击 NPC 即可将根部朝向玩家的快速旋转功能,修复 #661。
  • 通过在交互处理程序中增加对移动工具的检测,防止移动工具错误触发交互,已修复。
  • 通过在交互处理程序中增加对预设物品的检测,防止预设物品错误触发交互,已修复。
  • 通过调整边界框和眼睛高度计算方式,修复史莱姆与恶魂的碰撞箱及命名牌位置问题。
  • 通过调整偏移值,修复史莱姆与恶魂的 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。
  • 修复删除按钮在宽度较小时仍显示标签的问题。
  • 修复上下按钮在某些情况下位置不正确的问题。
  • 修复对话框和配置 GUI 中命名牌意外显示的问题。
  • 修复距离触发行为中多个动作未能正确触发的问题。
  • 修复 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 记录(records),增强不可变性与线程安全性。
  • 新增基于 ConcurrentHashMap 的线程安全会话服务器防刷机制。
  • 新增全面的错误恢复机制,在失败时自动重置冷却时间。
  • 改进材质加载性能,采用 2 线程池与 500ms 速率限制。
  • 改进异常处理,针对 IIOException 与 FileNotFoundException 添加专用捕获块。

6.5.2

  • 修复村民职业与工作皮肤问题。
  • 通过为 Gradle 依赖添加缓存,改进 GitHub 工作流。
  • 优化 Gradle 构建时间与清理任务。

6.5.1

  • 通过实现 ON_KILL 行为类型与事件,修复 #632。
  • 通过优化材质处理性能、缓存与内存使用,修复 #629。
  • 修复击杀命令对 NPC 无效的问题。
  • 修复材质重载保护机制阻止缓存驱逐后重新加载的问题。
  • 修复远程图片校验器中的 WebP 校验漏洞(缺少 return 语句)。
  • 重构材质处理逻辑,提升可维护性并为未来改进打下基础。
  • 新增基于时间的重载保护机制(60 秒),替代永久阻塞机制。
  • 新增材质处理相关的额外单元测试。
  • 优化 Gradle 构建任务。

6.5.0

  • ⚠️ 移除 jar-in-jar 打包方式,以提升模组兼容性与 API 能力。
  • 通过改进剪刀实现方式,提升与其他模组的兼容性,修复 #627。
  • 修复使用旋转或移动模型部件时动画异常活跃的问题,修复 #625。
  • 修复使用缩放模型部件时默认动画被取消的问题。
  • 新增更智能的姿势动画控制,提供 smart、default 与 none 三种选项。

6.4.1

  • 修复不同 NPC UUID 的界面切换逻辑,感谢 Spawnblade 提供详细调查与修复建议,修复 #626。

6.4.0

  • 通过改进对话数据验证与错误处理,修复 #626。
  • 通过重构渲染数据与渲染处理逻辑,修复 #623。
  • 通过确保自定义数据能正确保存与加载,修复 #622。
  • 修复“打开对话框”行为类型,允许从其他 NPC 打开对话框。
  • 通过为 ConditionDataSet 与 ActionDataSet 添加缺失的 equals 与 hashCode 方法,修复哈希问题。
  • 为 #622 新增自定义数据测试物品,便于测试自定义数据。
  • 改进记录结构并修复潜在的数据缺失问题。

6.3.0

  • 重构配置 GUI 专用组件,并将其从核心模组中移除。
  • 通过在发送至客户端前过滤对话数据,修复对话数据问题。
  • 修复对话编辑器布局问题并提升可用性。
  • 修复部分对话数据字段缺少默认值的问题。
  • 新增对话优先级支持,用于控制对话执行顺序。
  • 新增对话与计分板行为的条件支持。
  • 新增对话频率限制功能,控制对话显示频率。
  • 新增支持计分板与条件的新 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 – 包含 Core 与 Configuration UI 的整合包,提供即装即用体验。
  • Easy NPC: Core – 轻量级 NPC 运行时与逻辑核心,依赖极少,适用于服务器、整合包与开发者。
  • Easy NPC: Configuration UI – 独立的 NPC 创建与编辑配置界面,可单独安装于需要 UI 的客户端。

🎯 此变更原因

  • 允许服务器与整合包仅在服务端部署 Core 模组,实现更精简的配置。
  • 在无需 UI 的场景下降低内存占用与加载时间。
  • 通过分离 UI 与核心逻辑,加快开发与测试速度。

Easy NPC (Bundle) 6.8.2

on 2026 Feb 16
下载

Easy NPC (Bundle) 6.8.2

on 2026 Feb 16
下载

Changelog for Easy NPC (1.20.1)

Note

This change log includes the summarized changes. For the full changelog, please go to the [GitHub History][history] instead.

Note: Please always back up your world / NPCs before updating to a new version! Check the [upgrade guide][upgrade_guide] for more information.

6.8.2

  • Fixed #677 by extending SafeMerchantData with notifyTrade to avoid crashes.
  • Added progression data support for leveling up NPCs based on player interactions and actions.
  • Added global NPC tracking system for better management and debugging of NPCs across the world.
  • Added OriginalModelConfig.withVariantTexture() option to allow using variant textures with the original model.

6.8.1

  • Fixed #676 by using existing preset helper method instead of custom one.

6.8.0 (Adding API support)

  • Fixed #667 by adding warning messages and additional checks for invalid network packets.
  • Fixed Horse spawn eggs model.
  • Fixed pose support for allay, chicken, creeper, fox, ghast, horse, illager, iron golem, slime and vex.
  • Added NPC base classes for better API support.
  • Added NPC raw classes for advanced API support.
  • Added Slim and Ghast NPC types.
  • Added Custom Model API for easier integration with other mods and custom models.
  • Refactored internal data handling and registration for better maintainability and future improvements.

6.7.1

  • Fixed #657 and #656 by adding additional client side checks for vanilla bug.

6.7.0

  • Fixed #650 by implementing Wolf Leg Animations in setupAnim method.
  • Fixed #648 by fixing canBeHitByProjectiles translation.
  • Fixed #645 by adding allowBypassInvulnerability config option to allow/deny bypassing invulnerability for NPCs.
  • Fixed delete button showing label even with small width.
  • Fixed up and down buttons not positioned correctly in some cases.
  • Fixed name tag showing up for dialog and configuration UI.
  • Fixed distance action issue were multiple actions are not properly triggered.
  • Fixed issues with NPC presets.
  • Fixed Cat NPC and Wolf NPC owner data not syncing properly.
  • Added preset browser for easier selection of common NPC presets.
  • Added preset .snbt (text) export and import functionality for sharing NPC presets.
  • Refactored existing NPC presets to use new .snbt format.
  • Refactored spawner system to use new preset format for better maintainability and future improvements.

6.6.2

  • Fixed #643 by rework scaling system.
  • Fixed scaling not properly updating hitbox and nametag position after restart / reload.
  • Added MID and MOUSE_OVER name tag visibility modes for finer control over NPC name display.
  • Added team-based name tag visibility support respecting vanilla Team.

6.6.1

  • Fixed #638 by refactored internal data handling for display attributes.

6.6.0

  • Fixed #634 by implementing asynchronous texture loading with dedicated thread pool.
  • Fixed texture loading blocking render thread causing game freezes.
  • Fixed race conditions in texture reload protection using atomic operations.
  • Fixed resource leaks in HTTP connections during remote texture downloads.
  • Fixed URL validation spam allowing multiple simultaneous downloads of the same texture.
  • Fixed exception handling for remote image validation preventing crashes on invalid URLs.
  • Fixed defineId called for: warning messages during NPC loading.
  • Refactored texture loading architecture with multi-level defense and rate limiting.
  • Refactored entity data registration logic for better maintainability.
  • Converted data classes to modern Java records for better immutability and thread-safety.
  • Added thread-safe session server spam protection with ConcurrentHashMap.
  • Added comprehensive error recovery with automatic cooldown reset on failures.
  • Improved texture loading with 2-thread pool and 500ms rate limiting.
  • Improved exception handling with specific catch blocks for IIOException and FileNotFoundException.

6.5.2

  • Fixed Villager profession and job skin issue.
  • Improved GitHub workflows by adding cache for gradle dependencies.
  • Improved Gradle build time and cleanup tasks.

6.5.1

  • Fixed #632 by implementing ON_KILL action type and event.
  • Fixed #629 by improving texture handling performance, caching, and memory usage.
  • Fixed kill command is not working on NPCs.
  • Fixed texture reload protection preventing cache reload after eviction.
  • Fixed WebP validation bug in remote image validator (missing return statement).
  • Refactored texture handling logic for better maintainability and future improvements.
  • Added time-based reload protection (60 seconds) to replace permanent blocking mechanism.
  • Added additional unit tests for texture handling.
  • Improved gradle build tasks.

6.5.0

  • ⚠️ Removed jar-in-jar bundle approach for better mod compatibility and api capabilities.
  • Fixed #627 scissor implementation for better compatibility with other mods.
  • Fixed #625 lively animation issues when using rotated or moved model parts.
  • Fixed default animation are canceled when using scaled model parts.
  • Added better pose animation control with smart, default und none options.

6.4.1

  • Fixed #626 screen switching logic for different NPC UUIDs, thanks to Spawnblade for the detailed investigation and fix suggestion.

6.4.0

  • Fixed #626 by improving dialog data validation and error handling.
  • Fixed #623 by refactoring render data and render handling.
  • Fixed #622 by making sure custom data are properly saved and loaded.
  • Fixed open dialog action type to allow opening dialogs from other NPCs.
  • Fixed hashing issues by adding missing equals and hashCode methods for ConditionDataSet and ActionDataSet.
  • Added custom data test item for #622 and easier testing of custom data.
  • Improved records and fixed potential issues with missing data.

6.3.0

  • Refactored config ui specific components and removed them from the core mod.
  • Fixed dialog data by filtering dialog data before sending to the client.
  • Fixed dialog editor layout issues and improved usability.
  • Fixed missing default values for some dialog data fields.
  • Added dialog priority support to control the order of dialog execution.
  • Added condition support for dialog and scoreboard actions.
  • Added frequency support for dialog to limit how often an dialog can be shown.
  • Added new NPC preset to for scoreboard and condition support.
  • Improved dialog button data format by removing redundant fields.

6.2.0

  • Fixed string injection within dialogs.
  • Fixed missing translation for action types.
  • Added scoreboard action type to increase, decrease, set scoreboard values.
  • Added @score(...) NPC macro to display scoreboard values in the dialog.
  • Added additional unit tests.
  • Improved spin button with indicators and better usability.

6.1.2

  • Fixed container and menu sync issues with missing close container packets.
  • Fixed close button not working in some cases.
  • Fixed jumping mouse cursor between screen transitions.
  • Fixed translation files and removed duplicate and deprecated entries.
  • Moved Easy NPC wand to existing core item tab instead of creating a new one.
  • Added cat pose support for different model parts (except tail).
  • Improved EasyNPCWand glowing effect performance by disabling it when not needed.
  • Improved custom entity detection by excluding non-living entities like displays, makers, throwns and spawners.
  • Improved cat variant handling.

6.1.1

  • Fixed #612 by re-validating entity types.
  • Fixed #610 by force sync of hat and head layers for specific models.
  • Fixed orc textures.
  • Improved custom model support and performance, by moving related logic into to client side only.
  • Improved caching of player to UUID mappings for player skins.
  • Limited change model commands and logic to Doppler NPCs only.

6.1.0 ✨

This is a major release. Please back up your worlds and NPC data before updating. This version contains many improvements, optimizations, and interna

... [内容过长已截断]

Easy NPC (Bundle) 6.8.1

on 2026 Feb 13
下载

更改日志:简易NPC:核心 (1.21.1)

注意

此更改日志包含简要的更改。 如需完整更改日志,请访问GitHub历史记录。

注意:请在更新到新版本之前始终备份您的世界/NPC! 有关更多信息,请参阅升级指南。

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名称显示。
  • 添加了基于团队的名称标签可见性支持,尊重原版团队。

6.6.1

  • 通过重构内部数据处理修复了#638中的显示属性。

6.6.0

  • 通过使用专用线程池实现异步纹理加载修复了#634。
  • 修复了纹理加载阻塞渲染线程导致游戏卡顿的问题。
  • 通过使用原子操作修复了纹理重载保护中的竞争条件。
  • 修复了远程纹理下载时HTTP连接中的资源泄漏。
  • 修复了URL验证垃圾邮件,允许多次同时下载同一纹理的问题。
  • 修复了远程图像验证中的异常处理,防止无效URL导致崩溃。
  • 修复了NPC加载期间的defineId called for:警告消息。
  • 重构了带有多层次防御和速率限制的纹理加载架构。
  • 重构了实体数据注册逻辑,以提高可维护性。
  • 将数据类转换为现代Java记录,以提高不可变性和线程安全性。
  • 添加了使用ConcurrentHashMap的线程安全会话服务器垃圾邮件保护。
  • 添加了全面的错误恢复,自动在失败时重置冷却时间。
  • 通过2线程池和500毫秒速率限制改进了纹理加载。
  • 通过特定的catch块改进了IIOException和FileNotFoundException的异常处理。

6.5.2

  • 修复了村民职业和工作皮肤问题。
  • 通过添加Gradle依赖项缓存改进了GitHub工作流程。
  • 改进了Gradle构建时间和清理任务。

6.5.1

  • 通过实现ON_KILL动作类型和事件修复了#632。
  • 通过改进纹理处理性能、缓存和内存使用修复了#629。
  • 修复了kill命令对NPC不起作用的问题。
  • 修复了纹理重载保护阻止缓存重载的问题。
  • 修复了远程图像验证器中的WebP验证错误(缺少返回语句)。
  • 重构了纹理处理逻辑,以提高可维护性和未来的改进。
  • 添加了基于时间的重载保护(60秒),以替换永久阻塞机制。
  • 添加了额外的纹理处理单元测试。
  • 改进了Gradle构建任务。

6.5.0

  • ⚠️ 移除了jar-in-jar捆绑方法,以提高模组兼容性和API能力。
  • 通过改进剪切实现修复了#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

  • 修复了由于缺少关闭容器数据包而导致的容器和菜单同步问题。
  • 修复了某些情况下关闭按钮无法工作的问题。
  • 修复了屏幕切换时鼠标光标跳跃的问题。
  • 修复了翻译文件并移除了重复和已弃用的条目。
  • 将简易NPC魔杖移到现有的核心物品选项卡中,而不是创建一个新的选项卡。
  • 添加了猫的不同模型部件(尾巴除外)的姿态支持。
  • 通过在不需要时禁用简易NPC魔杖的发光效果来提高其性能。
  • 通过排除非生物实体(如显示器、标记、投掷物和生成器)改进了自定义实体检测。
  • 改进了猫变种处理。

6.1.1

  • 通过重新验证实体类型修复了#612。
  • 通过强制同步特定模型的帽子和头部层修复了#610。
  • 修复了兽人纹理。
  • 通过将相关逻辑仅移动到客户端一侧来改进自定义模型支持和性能。
  • 通过改进玩家到UUID映射的缓存来提高玩家皮肤的性能。
  • 将改变模型命令和逻辑限制为仅多普勒NPC。

6.1.0 ✨

这是一个主要版本。请在更新前备份您的世界和NPC数据。 此版本包含许多改进、优化和内部更改,这些更改不完全兼容早期版本。

⚠️ 破坏性更改

  • 版本6.1.0之前的现有NPC及其配置数据可能无法正确加载,或者需要手动调整。
  • 内部数据格式和一些行为已被重构以支持新的用例。

🧩 新的模块化结构

简易NPC现在分为三个独立的模组:

  • 简易NPC – 包括核心和配置UI的捆绑包,提供即插即用体验。
  • 简易NPC:核心 – 轻量级运行时和NPC逻辑,具有最少的依赖项。适用于服务器、模组包和开发者。
  • 简易NPC:配置UI – 独立的配置界面,用于创建和编辑NPC。可以安装在需要UI的客户端上。

🎯 为什么进行此更改?

  • 允许服务器和模组包仅在服务器端安装核心模组,以实现更精简的设置。
  • 在不需要UI的情况下减少内存使用和加载时间。
  • 通过分离UI和核心逻辑,加快开发和测试速度。

Easy NPC (Bundle) 6.8.1

on 2026 Feb 13
下载

易用NPC:核心 (1.21.1) 更新日志

注意

此更新日志包含简要的更改摘要。 如需完整更新日志,请访问 GitHub 历史记录。

注意:请在更新到新版本之前始终备份您的世界/NPC! 有关更多信息,请查看 升级指南。

6.8.0(添加API支持)

  • 通过添加警告信息和额外检查修复了无效网络数据包的问题 #667。
  • 修复了马生成蛋模型。
  • 修复了悦灵、鸡、苦力怕、狐狸、恶魂、马、灾厄村民、铁傀儡、史莱姆和恼鬼的姿势支持。
  • 添加了NPC基础类以更好地支持API。
  • 添加了NPC原始类以支持高级API。
  • 添加了细长型和恶魂型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和鼠标悬停名称标签可见性模式,以更精细地控制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验证错误(缺少返回语句)。
  • 重构了纹理处理逻辑,以提高可维护性和未来的改进。
  • 添加了基于时间的重载保护(60秒),以替换永久阻塞机制。
  • 添加了纹理处理的额外单元测试。
  • 改进了Gradle构建任务。

6.5.0

  • ⚠️ 移除了jar-in-jar捆绑方式,以提高模组兼容性和API能力。
  • 通过改进剪切实现修复了与其他模组的兼容性问题 #627。
  • 修复了使用旋转或移动模型部件时的生动动画问题 #625。
  • 修复了使用缩放模型部件时默认动画被取消的问题。
  • 添加了更好的姿势动画控制,提供智能、默认和无选项。

6.4.1

  • 通过改进屏幕切换逻辑修复了不同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

  • 修复了容器和菜单同步问题,缺少关闭容器的数据包。
  • 修复了某些情况下关闭按钮不起作用的问题。
  • 修复了屏幕切换时鼠标光标跳跃的问题。
  • 修复了翻译文件并移除了重复和废弃的条目。
  • 将易用NPC魔杖移到现有核心物品标签中,而不是创建一个新的。
  • 添加了猫的不同模型部分(尾巴除外)的姿态支持。
  • 通过在不需要时禁用效果来改进易用NPC魔杖发光效果性能。
  • 通过排除非生物实体(如展示物、标记物、投掷物和生成器)来改进自定义实体检测。
  • 改进了猫变种处理。

6.1.1

  • 通过重新验证实体类型修复了 #612。
  • 通过强制同步特定模型的帽子和头部层修复了 #610。
  • 修复了兽人纹理。
  • 通过将相关逻辑移动到客户端侧来改进自定义模型支持和性能。
  • 改进了玩家到UUID映射的缓存,以支持玩家皮肤。
  • 将改变模型的命令和逻辑限制为仅Doppler NPC。

6.1.0 ✨

这是一个重大版本。请在更新前备份您的世界和NPC数据。 此版本包含许多改进、优化和内部更改,与早期版本不完全兼容。

⚠️ 破坏性更改

  • 版本6.1.0之前的现有NPC及其配置数据可能无法正确加载,或者需要手动调整。
  • 内部数据格式和一些行为已被重构,以支持新的用例。

🧩 新的模块化结构

易用NPC现在分为三个独立的模组:

  • 易用NPC – 包含核心和配置UI的捆绑包,提供即插即用体验。
  • 易用NPC:核心 – 轻量级运行时和NPC逻辑,依赖最少。适用于服务器、模组包和开发者。
  • 易用NPC:配置UI – 独立的配置界面,用于创建和编辑NPC。可以安装在需要UI的客户端上。

🎯 为什么要进行这些更改?

  • 允许服务器和模组包仅在服务器端部署核心模组,以实现更精简的设置。
  • 当不需要UI时,减少内存使用和加载时间。
  • 通过分离UI和核心逻辑,加快开发和测试速度。

Easy NPC (Bundle) 6.8.1

on 2026 Feb 13
下载

更改日志:简易NPC:核心 (1.21.1)

注意

此更改日志包含总结的更改。 如需完整更改日志,请访问 GitHub 历史记录。

注意:请在更新到新版本之前始终备份您的世界/NPC! 有关更多信息,请查看升级指南。

6.8.0(添加API支持)

  • 通过添加警告信息和对无效网络数据包的额外检查,修复了#667。
  • 修复了马生成蛋模型。
  • 修复了悦灵、鸡、苦力怕、狐狸、恶魂、马、灾厄村民、铁傀儡、史莱姆和恼鬼的姿势支持。
  • 添加了NPC基础类以更好地支持API。
  • 添加了NPC原始类以支持高级API。
  • 添加了Slim和Ghast NPC类型。
  • 添加了自定义模型API以便与其他模组和自定义模型更轻松地集成。
  • 重构了内部数据处理和注册,以提高可维护性和未来的改进。

6.7.1

  • 通过添加额外的客户端检查修复了#657和#656中的原版bug。

6.7.0

  • 通过在setupAnim方法中实现狼腿动画修复了#650。
  • 通过修复canBeHitByProjectiles翻译修复了#648。
  • 通过添加allowBypassInvulnerability配置选项来允许/禁止绕过NPC的无敌状态,修复了#645。
  • 修复了即使宽度很小也会显示删除按钮标签的问题。
  • 修复了某些情况下上下按钮位置不正确的问题。
  • 修复了对话和配置UI中显示名称标签的问题。
  • 修复了距离动作问题,多个动作没有正确触发。
  • 修复了NPC预设的问题。
  • 修复了猫NPC和狼NPC所有者数据不同步的问题。
  • 添加了预设浏览器,以便更轻松地选择常见的NPC预设。
  • 添加了预设.snbt(文本)导出和导入功能,以便共享NPC预设。
  • 重构现有的NPC预设以使用新的.snbt格式。
  • 重构了生成器系统,以使用新的预设格式,提高可维护性和未来的改进。

6.6.2

  • 通过重新设计缩放系统修复了#643。
  • 修复了重启/重新加载后缩放未正确更新碰撞箱和名称标签位置的问题。
  • 添加了MID和鼠标悬停名称标签可见性模式,以更精细地控制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,感谢Spawnblade的详细调查和修复建议。

6.4.0

  • 通过改进对话数据验证和错误处理修复了#626。
  • 通过重构渲染数据和渲染处理修复了#623。
  • 通过确保自定义数据正确保存和加载修复了#622。
  • 修复了打开对话动作类型,允许从其他NPC打开对话。
  • 通过为ConditionDataSet和ActionDataSet添加缺失的equals和hashCode方法修复了哈希问题。
  • 添加了用于#622和更轻松测试自定义数据的自定义数据测试项目。
  • 改进了记录并修复了潜在的缺失数据问题。

6.3.0

  • 重构了配置UI特定组件,并将其从核心模组中移除。
  • 通过在发送到客户端之前过滤对话数据修复了对话数据。
  • 修复了对话编辑器布局问题并提高了可用性。
  • 修复了某些对话数据字段缺少默认值的问题。
  • 添加了对话优先级支持,以控制对话执行顺序。
  • 添加了对话和记分板动作的条件支持。
  • 添加了对话频率支持,以限制对话显示的频率。
  • 添加了新的NPC预设,以支持记分板和条件。
  • 通过移除冗余字段改进了对话按钮数据格式。

6.2.0

  • 修复了对话中的字符串注入问题。
  • 修复了动作类型缺少翻译的问题。
  • 添加了记分板动作类型,以增加、减少、设置记分板值。
  • 添加了NPC宏@score(...)以在对话中显示记分板值。
  • 添加了附加单元测试。
  • 通过指示器和更好的可用性改进了旋转按钮。

6.1.2

  • 修复了由于缺少关闭容器数据包而导致的容器和菜单同步问题。
  • 修复了某些情况下关闭按钮不起作用的问题。
  • 修复了屏幕切换时鼠标光标跳跃的问题。
  • 修复了翻译文件并移除了重复和已弃用的条目。
  • 将简易NPC魔杖移动到现有的核心物品标签中,而不是创建一个新的标签。
  • 添加了不同模型部分(尾巴除外)的猫姿势支持。
  • 通过在不需要时禁用发光效果来改进简易NPC魔杖的性能。
  • 通过排除非生物实体(如展示、标记、投掷物和生成器)来改进自定义实体检测。
  • 改进了猫变体处理。

6.1.1

  • 通过重新验证实体类型修复了#612。
  • 通过强制同步特定模型的帽子和头部层修复了#610。
  • 修复了兽人纹理。
  • 通过将相关逻辑移动到客户端侧来改进自定义模型支持和性能。
  • 改进了玩家皮肤的玩家到UUID映射缓存。
  • 限制了仅Doppler NPC的改变模型命令和逻辑。

6.1.0 ✨

这是一个主要版本。请在更新前备份您的世界和NPC数据。 此版本包含许多改进、优化和内部更改,这些更改与早期版本不完全兼容。

⚠️ 破坏性更改

  • 来自6.1.0之前的版本的现有NPC及其配置数据可能无法正确加载,或者可能需要手动调整。
  • 内部数据格式和一些行为已被重构以支持新的用例。

🧩 新模块化结构

简易NPC现在分为三个独立的模组:

  • 简易NPC – 包括核心和配置UI的捆绑包,提供即插即用体验。
  • 简易NPC:核心 – 轻量级运行时和NPC逻辑,最小依赖。适用于服务器、模组包和开发者。
  • 简易NPC:配置UI – 用于创建和编辑NPC的独立配置界面。可以安装在需要UI的客户端上。

🎯 为什么进行此更改?

  • 允许服务器和模组包仅在服务器端安装核心模组,以实现更精简的设置。
  • 当不需要UI时,减少内存使用和加载时间。
  • 通过分离UI和核心逻辑,加快开发和测试速度。

Easy NPC (Bundle) 6.8.0

on 2026 Feb 08
下载

Easy NPC:核心版(1.21.1)更新日志

说明

本更新日志汇总了主要变更内容。
完整更新日志请参阅 GitHub 历史记录。

注意:升级至新版本前,请务必备份您的世界存档及NPC数据!
更多详情请查阅 升级指南。

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 问题。
  • 修复了删除按钮在宽度较小时仍显示标签的问题。
  • 修复了上下按钮在某些情况下定位不准确的问题。
  • 修复了对话界面与配置界面中名称标签意外显示的问题。
  • 修复了距离触发动作中多个动作无法被正确触发的问题。
  • 修复了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能力。
  • 通过改进剪裁(scissor)实现,修复了 #627 问题,增强与其他模组的兼容性。
  • 修复了在使用旋转或移动模型部件时出现的生动动画异常问题。
  • 修复了使用缩放模型部件时默认动画被意外取消的问题。
  • 新增更完善的姿势动画控制选项:智能(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魔杖移入现有核心物品分类页签,而非新建页签。
  • 新增猫类姿势支持(除尾巴外各模型部件)。
  • 优化EasyNPC魔杖发光效果性能:仅在需要时启用。
  • 优化自定义实体检测逻辑:排除非生物实体(如展示框、标记实体、投掷物、刷怪箱等)。
  • 优化猫类变体处理逻辑。

6.1.1

  • 通过重新校验实体类型,修复了 #612 问题。
  • 通过强制同步特定模型的帽子与头部图层,修复了 #610 问题。
  • 修复兽人纹理显示问题。
  • 优化自定义模型支持与性能:将相关逻辑迁移至客户端侧执行。
  • 优化玩家→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与核心逻辑,加快开发与测试流程。

Easy NPC (Bundle) 6.8.0

on 2026 Feb 08
下载

Easy NPC:核心版(1.21.1)更新日志

说明

本更新日志汇总了主要变更内容。
完整变更记录请参阅 GitHub 历史记录。

注意:更新至新版本前,请务必备份您的世界存档及NPC数据!
更多升级相关信息,请查阅 升级指南。

6.8.0(新增API支持)

  • 通过添加无效网络数据包的警告信息与额外校验,修复了 #667 问题。
  • 修复了马刷怪蛋的模型显示。
  • 为悦灵、鸡、苦力怕、狐狸、恶魂、马、卫道士、铁傀儡、史莱姆和恼鬼全面修复了姿态支持。
  • 新增NPC基础类,以提升API兼容性。
  • 新增NPC原始类(Raw Classes),供高级API使用。
  • 新增“瘦小”与“恶魂”两种NPC类型。
  • 新增自定义模型API,便于与其他模组及自定义模型集成。
  • 重构内部数据处理与注册逻辑,提升可维护性,并为未来改进奠定基础。

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记录(Records),增强不可变性与线程安全性。
  • 新增基于 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能力。
  • 通过改进剪刀(Scissors)实现,修复了 #627 问题,增强与其他模组的兼容性。
  • 修复了 #625 问题:在使用旋转或位移模型部件时,生动动画异常中断。
  • 修复了使用缩放模型部件时默认动画被意外取消的问题。
  • 新增更完善的姿态动画控制选项:智能(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宏,可在对话中显示计分板数值。
  • 新增额外单元测试。
  • 优化旋转按钮:增加状态指示器,并提升可用性。

6.1.2

  • 修复了容器与菜单同步问题(缺失关闭容器数据包)。
  • 修复了关闭按钮在某些情况下失效的问题。
  • 修复了界面切换过程中鼠标光标异常跳动的问题。
  • 修复了翻译文件,移除了重复与已弃用条目。
  • 将Easy NPC魔杖移入现有核心物品标签页,而非新建标签页。
  • 新增猫姿态支持(适配不同模型部件,尾巴除外)。
  • 优化EasyNPCWand光灵(glowing)特效性能:仅在需要时启用。
  • 优化自定义实体检测逻辑,排除显示实体(displays)、标记实体(makers)、投掷物(throwns)与刷怪器(spawners)等非生物实体。
  • 优化猫变体处理逻辑。

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.8.0

on 2026 Feb 08
下载

Easy NPC(1.20.1)版本更新日志

注意事项

本更新日志包含变更内容的简要汇总。
完整更新日志请参阅 GitHub 历史记录。

注意:更新至新版本前,请务必备份您的世界存档及NPC数据!
更多信息请查阅 升级指南。

6.8.0(新增API支持)

  • 通过添加无效网络数据包的警告信息与额外校验,修复了 #667 问题。
  • 修复了马生成蛋的模型显示。
  • 为悦灵、鸡、苦力怕、狐狸、恶魂、马、卫道士、铁傀儡、史莱姆和恼鬼完善了姿态支持。
  • 新增NPC基础类,以增强API兼容性。
  • 新增NPC原始类(Raw Classes),以支持高级API开发。
  • 新增纤细型(Slim)与恶魂型NPC类型。
  • 新增自定义模型API,便于与其他模组及自定义模型集成。
  • 重构内部数据处理与注册逻辑,提升可维护性,并为未来改进奠定基础。

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记录(Records),增强不可变性与线程安全性。
  • 新增线程安全的会话服务器防刷机制,采用 ConcurrentHashMap 实现。
  • 新增全面的错误恢复机制,失败时自动重置冷却时间。
  • 改进纹理加载:采用双线程池 + 500毫秒速率限制。
  • 改进异常处理:为 IIOException 与 FileNotFoundException 分别设置专属捕获块。

6.5.2

  • 修复了村民职业与工作皮肤显示异常的问题。
  • 优化GitHub工作流,为Gradle依赖添加缓存。
  • 提升Gradle构建速度,并优化清理任务。

6.5.1

  • 通过实现ON_KILL动作类型与事件,修复了 #632 问题。
  • 通过优化纹理处理性能、缓存策略与内存占用,修复了 #629 问题。
  • 修复了对NPC执行击杀命令无效的问题。
  • 修复了纹理重载防护机制阻止缓存驱逐后重新加载的问题。
  • 修复了远程图像校验器中的WebP验证缺陷(缺失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 问题。
  • 通过确保自定义数据能被正确保存与加载,修复了 #622 问题。
  • 修复了“打开对话”动作类型,使其支持从其他NPC触发对话。
  • 通过为 ConditionDataSet 与 ActionDataSet 补充缺失的 equals 和 hashCode 方法,修复了哈希问题。
  • 新增自定义数据测试物品,用于 #622 及自定义数据的便捷测试。
  • 优化记录类(Records)并修复潜在的数据缺失问题。

6.3.0

  • 重构配置界面专用组件,并将其从核心模组中移除。
  • 修复对话数据:在发送至客户端前对对话数据进行过滤。
  • 修复对话编辑器布局问题,并提升易用性。
  • 修复部分对话数据字段缺失默认值的问题。
  • 新增对话优先级支持,用于控制对话执行顺序。
  • 新增对话与计分板动作的条件支持。
  • 新增对话频率支持,用于限制对话显示频次。
  • 新增支持计分板与条件功能的NPC预设。
  • 优化对话按钮数据格式,移除冗余字段。

6.2.0

  • 修复对话中的字符串注入漏洞。
  • 修复部分动作类型缺失本地化翻译的问题。
  • 新增计分板动作类型,支持增加、减少或设定计分板数值。
  • 新增 @score(...) NPC宏,可在对话中显示计分板数值。
  • 新增更多单元测试。
  • 优化旋钮按钮(Spin Button),添加指示器并提升易用性。

6.1.2

  • 修复容器与菜单同步问题(缺失关闭容器数据包)。
  • 修复关闭按钮在某些情况下失效的问题。
  • 修复屏幕切换过程中鼠标光标异常跳动的问题。
  • 修复翻译文件,移除重复与已弃用条目。
  • 将Easy NPC魔杖移至现有核心物品标签页,不再新建独立标签页。
  • 新增猫姿态支持(适配不同模型部件,尾部除外)。
  • 优化EasyNPC魔杖发光效果性能:仅在需要时启用。
  • 优化自定义实体检测:排除非生物实体(如展示框、标记实体、投掷物、刷怪笼等)。
  • 优化猫变体处理逻辑。

6.1.1

  • 通过重新校验实体类型,修复了 #612 问题。
  • 通过强制同步特定模型的帽子与头部图层,修复了 #610 问题。
  • 修复兽人纹理显示问题。
  • 通过将相关逻辑迁移至客户端侧,优化自定义模型支持与性能。
  • 优化玩家→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的客户端。

🎯 此次变更原因

  • 服务器与整合包可仅在服务端部署核心模组,实现更精简的部署方案。
  • 在无需UI的场景下,显著降低内存占用与加载耗时。
  • 分离UI与核心逻辑,加速开发与测试流程。

Easy NPC (Bundle) 6.8.0

on 2026 Feb 08
下载

Easy NPC(1.20.1)更新日志

说明

本更新日志汇总了主要变更内容。
如需完整变更记录,请访问 GitHub 历史记录。

注意:升级至新版本前,请务必备份您的世界存档及NPC数据!
更多详情请参阅 升级指南。

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)。
  • 修复了删除按钮在宽度较小时仍显示标签文字的问题。
  • 修复了上下按钮在某些情况下位置错位的问题。
  • 修复了对话界面与配置界面中名称标签意外显示的问题。
  • 修复了距离触发动作失效的问题——多个动作无法被正确触发。
  • 修复了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执行kill命令无效的问题。
  • 修复了纹理重载防护机制导致缓存驱逐后无法重新加载的问题。
  • 修复了远程图像校验器中的WebP验证缺陷(缺失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。
  • 通过确保自定义数据能被正确保存与加载,修复了问题 #622。
  • 修复了“打开对话”动作类型,现支持从其他NPC触发对话。
  • 通过为 ConditionDataSet 与 ActionDataSet 补充缺失的 equals 和 hashCode 方法,修复哈希问题。
  • 新增自定义数据测试物品(对应问题 #622),便于快速验证自定义数据功能。
  • 优化记录类(record)实现,并修复潜在的数据缺失问题。

6.3.0

  • 重构配置界面专属组件,并将其从核心模组中移除。
  • 修复对话数据:在发送至客户端前过滤对话数据。
  • 修复对话编辑器布局问题,提升易用性。
  • 修复部分对话数据字段缺少默认值的问题。
  • 新增对话优先级支持,用于控制对话执行顺序。
  • 新增对话与计分板动作的条件支持。
  • 新增对话频率支持,用于限制对话触发频次。
  • 新增支持计分板与条件功能的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 —— 集成核心功能与配置界面的即插即用整合包。
  • Easy NPC:核心版 —— 轻量级运行时与NPC逻辑,依赖极少。适用于服务器、模组包与开发者。
  • Easy NPC:配置界面版 —— 独立的NPC创建与编辑配置界面。仅需安装于需要UI的客户端。

🎯 此次变更的原因?

  • 允许服务器与模组包仅在服务端部署核心版,实现更精简的部署方案。
  • 在无需UI的场景下降低内存占用与加载时间。
  • 通过分离UI与核心逻辑,加快开发与测试流程。

Easy NPC (Bundle) 6.7.0

on 2026 Feb 02
下载

Easy NPC:核心版(1.21.1)更新日志

说明

本更新日志汇总了主要变更内容。
如需完整更新日志,请访问 GitHub 历史记录。

注意:升级至新版本前,请务必备份您的世界存档及NPC数据!
更多信息请参阅 升级指南。

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格式验证的缺陷(缺失返回语句)。
  • 重构纹理处理逻辑,提升可维护性并为未来改进预留空间。
  • 新增基于时间的重载保护(60秒),替代永久性阻断机制。
  • 为纹理处理新增额外单元测试。
  • 优化Gradle构建任务。

6.5.0

  • ⚠️ 移除“jar-in-jar”打包方式,以提升模组兼容性与API能力。
  • 通过完善剪裁(scissor)实现,修复了 #627,增强与其他模组的兼容性。
  • 修复了 #625:当模型部件发生旋转或位移时,生动动画表现异常的问题。
  • 修复了使用缩放模型部件时默认动画被意外取消的问题。
  • 新增更完善的姿态动画控制,提供智能(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宏,可在对话中显示计分板数值。
  • 新增额外单元测试。
  • 优化旋转按钮(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:核心版 —— 轻量级运行时与NPC逻辑,依赖极少。面向服务器、整合包与开发者。
  • Easy NPC:配置界面版 —— 独立的NPC创建与编辑配置界面。仅需在需要UI的客户端安装。

🎯 此次变更的意义?

  • 服务器与整合包可仅部署 核心版,实现精简配置。
  • 在无需UI的场景下,显著降低内存占用与加载时间。
  • UI与核心逻辑分离,加速开发与测试流程。

Easy NPC (Bundle) 6.7.0

on 2026 Feb 02
下载

Easy NPC:核心版(1.21.1)更新日志

说明

本更新日志汇总了主要变更内容。
如需完整更新日志,请访问 GitHub 历史记录。

注意:更新至新版本前,请务必备份您的世界存档及 NPC 数据!
更多详情请参阅 升级指南。

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

  • 修复了村民职业与工作皮肤显示异常的问题。
  • 通过为 Gradle 依赖项添加缓存,优化了 GitHub 工作流。
  • 优化 Gradle 构建耗时与清理任务。

6.5.1

  • 通过实现 ON_KILL 动作类型与事件,修复了 #632 问题。
  • 通过优化纹理处理性能、缓存策略与内存占用,修复了 #629 问题。
  • 修复了对 NPC 使用击杀命令无效的问题。
  • 修复了纹理重载保护机制阻止缓存驱逐后重新加载的问题。
  • 修复了远程图像校验器中的 WebP 校验缺陷(缺失 return 语句)。
  • 重构纹理处理逻辑,以提升可维护性并支持未来改进。
  • 新增基于时间的重载保护(60 秒),替代原有永久性阻断机制。
  • 新增针对纹理处理的额外单元测试。
  • 优化 Gradle 构建任务。

6.5.0

  • ⚠️ 移除“jar-in-jar”打包方式,以提升模组兼容性与 API 能力。
  • 通过完善剪裁(scissor)实现,修复了 #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.6.1

on 2026 Feb 02
下载

Easy NPC:核心版(1.21.1)更新日志

注意事项

本更新日志汇总了主要变更内容。
如需完整变更记录,请访问 GitHub 历史记录。

注意:更新至新版本前,请务必备份您的世界存档及NPC数据!
更多升级相关信息,请参阅 升级指南。

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 问题:改进剪刀(Scissor)实现,增强与其他模组的兼容性。
  • 修复了 #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 问题。
  • 修复兽人(Orc)纹理显示问题。
  • 通过将相关逻辑迁移至客户端侧,提升自定义模型支持能力与性能。
  • 优化玩家名到 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 的客户端。

🎯 此次变更原因

  • 允许服务器与整合包仅在服务端部署 核心版,实现精简配置。
  • 在无需 UI 的场景下降低内存占用与加载耗时。
  • 通过分离 UI 与核心逻辑,加速开发与测试流程。
1
2
15
BBSMC Logo

中国最活跃的 Minecraft 中文资源社区

QQ 群:1078515449

资源

模组整合包光影资源包

社区

汉化软件插件

帮助

服务条款隐私政策社区规则开源代码
设置

"Minecraft"以及"我的世界"为美国微软公司的商标,本站与微软公司没有从属关系。 本站与 Modrinth 无从属关系,网站遵循 LGPL 协议开源。

© 2019-2026 青岛柒兮网络科技有限公司 | 鲁B2-20210590 | 鲁ICP备2021009459号-12 | 公安备案 鲁公网安备37021002001586号