2.4.4
on 2025 Oct 13新增功能
- 初步支持 Ping Wheel
- 目前需要使用自定义插件,可在 https://github.com/MATRIX-feather/pingwheel-plugin-forked 找到
问题修复
- 从从服务器同步的伪装状态实际上并未应用到主服务器
- 当
feathermorph.disguise_use_real_uuid
设置为 true 时,玩家在取消伪装时会从其 TAB 视图中被移除
2.5.0-beta.5
on 2025 Oct 13修复
- 从附属服务器同步的伪装状态实际上并未应用到主服务器
其他
- 我们现在升级到了 1.21.10
- 我们现在基于 PacketEvents 2.10.0-SNAPSHOT 开发版本进行编译
- 这样 CI 又可以正常工作了!
2.4.1
on 2025 Oct 08此版本可能需要一些手动操作
伪装工具(Disguise Tool)和魔法瓶(Magic Bottle)的合成配方现在通过数据包(datapack)注册。虽然这提供了更高的自定义性,但如果您希望单独禁用其中某个配方,则需要安装一个配方管理插件。
如果您已经使用配方管理插件禁用了相关配方,则无需进行任何操作。(因为该数据包使用的配方 ID 与旧版本一致)
本次更新进行了大量改动,尽管我们已尽力消除漏洞,但仍可能存在尚未发现的问题!
新功能
- 当输入无效属性值尝试伪装时,现在会向玩家发送错误提示并拒绝伪装,而非使用默认值
- 属性输入现已包含在
PlayerMorphEarlyEvent
事件中 - 新增对猫/狼项圈颜色属性的支持
- 实装守护者(Guardian)伪装技能
- 玩家需更新模组才能在其视野中看到技能目标
- 海豚和美西螈伪装现在将为玩家提供额外水下呼吸空气
- 新增
#feathermorph:magic_bottle_collectable
实体标签- 处于此标签中的生物可被魔法瓶收集伪装形态
- 现在支持使用数量大于1的空魔法瓶来收集伪装
修复内容
- 已修复:收集后的魔法瓶无法正常使用的问题
- 修复了
snow_golem/pumpkin
、zoglin/is_baby
和zombie/is_baby
属性本应有 TAB 补全列表却缺失的问题 - 修复了
burns_under_sun
属性失效的问题
其他改进
- 许可证由 MIT 更改为 GPLv3
- 开源许可证文件现已包含在 Jar 包内
- 伪装工具和魔法瓶的合成配方现通过数据包注册
- 重构了技能/能力配置的读写逻辑
- 重构了技能处理机制
- 如果您遇到技能/能力配置无法正确加载的问题,请及时反馈!
- 重构了生物AI修改系统,减少对NMS的依赖
- 移除了生物AI恢复方法
- 配置更改后请重启服务器以生效
- 服务端伪装选择GUI中的图标现使用雪球+物品模型显示
potion_on_attack
能力现在要求输入药水ID,而非Spigot枚举名称- 更新了中文(zh_CN)语言翻译
- 将“伪装”替换为更准确的“变形”或“形态”
- 现可通过在插件数据文件夹中创建
cmd_debug.txt
文件启用调试命令- 警告!此功能不适用于生产环境。启用可能导致问题!
- 夜视能力不再对玩家施加药水粒子效果
entity/custom_name
属性现对用户输入限制为256字符,最终文本限制为50字符entity/custom_name
不再接受空输入- 伪装Boss栏现在会读取已设置的
entity/custom_name
属性文本 - 玩家伪装形态不再接受
entity/custom_name
输入- 但末影龙伪装仍保留此功能,目前为有意设计 :D
armor_stand/show_arms
的默认值将再次从配置文件中读取并应用DisguiseState
实例现在自行更新,而非由MorphManager
更新- “We are not connected with master server! Refusing to update unlock state...” 消息现记录为错误级别而非警告
API 变更
- 属性输入现已包含在
PlayerMorphEarlyEvent
中
完整更新日志: https://github.com/NiFeather/FeatherMorph/compare/2.4.0...2.4.1
2.5.0-beta.2
on 2025 Oct 08这是一个针对 1.21.9 的测试版本。请注意,由于 PacketEvents 尚未更新,此版本可能不支持通过服务端渲染显示假人(Mannequin)和铜傀儡(Copper Golem)的伪装形态。
新功能
- API 版本现已升级至 16
- 玩家伪装的皮肤以及任意实体伪装的装备现在作为伪装属性进行管理
- 对不支持伪装属性的客户端的兼容性支持将持续到 2026 年,或 1.22 正式发布时为止
- 新增对假人(Mannequin)伪装的支持
- 默认情况下,无法使用魔法瓶收集假人伪装
- 假人伪装具有与盔甲架和玩家伪装相同的“假装备”(Fake Equip)技能
mannequin/skin
属性仅限管理员使用,因为插件会尝试从输入内容获取并缓存皮肤。你可以为玩家授予feathermorph.custom_skin
权限,以允许他们使用该属性
- 新增对铜傀儡(Copper Golem)伪装的支持
- 默认情况下,可以使用魔法瓶收集铜傀儡伪装
- 为铜傀儡伪装新增了天气状态(Weather State)属性
- 初步支持 Ping Wheel
- 当前需要一个自定义插件,可在 https://github.com/MATRIX-feather/pingwheel-plugin-forked 找到
修复内容
- 修复了当
feathermorph.disguise_use_real_uuid
设置为 true 时,玩家伪装出现的多个问题- 取消伪装时玩家会从 TAB 列表中消失
- 从远处传送或从旁观模式切换游戏模式时,伪装无法正常显示
其他变更
- 移除了伪装 NBT 黑名单配置
- 因为该功能已不再使用
完整更新日志: https://github.com/NiFeather/FeatherMorph/compare/2.4.3...2.5.0-beta.2
2.5.0-beta.3
on 2025 Oct 08新功能
- 为
entity/custom_name
、mannequin/description
和mannequin/hide_description
属性添加了权限feathermorph.custom_text
,默认对玩家开放 - 假人和铜傀儡伪装现已支持服务端渲染(Server Renderer)
- 需要使用基于 此 PR 构建的 PacketEvents
其他更新
- 多项伪装属性已变更,玩家需将模组更新至 0.16.0-beta.2!
- 合并
mannequin/skin_internal
和mannequin/skin
属性。现在mannequin/skin
用于皮肤输入及属性同步 - 更改了插件向玩家同步
mannequin/skin
的方式 entity/custom_name
和mannequin/description
现在支持以{
开头的 JSON 文本组件player/skin
现在支持 GameProfile 复合字符串mannequin/skin
现在支持以{
开头的有效MorphResolvableProfileStruct
字符串
- 合并
2.4.3
on 2025 Oct 08此版本可能需要一些手动操作
伪装工具和魔法瓶的合成配方现在通过数据包注册。虽然这允许你进行更深入的自定义,但如果你想单独禁用其中某个配方,则需要安装一个配方管理插件。
如果你已经使用配方管理插件禁用了相关配方,则无需任何操作。(因为数据包使用的配方 ID 与旧版本行为一致)
如果你是从较早版本更新而来,建议同时查阅 2.4.1 版本的更新日志。
新功能
- 空魔法瓶的收集结果现在基于战利品表(loot table)
- 默认情况下,插件会处理来自战利品表的所有输出物品
- 你可以为特定物品设置自定义 NBT 数据
feathermorph:skip_magic_bottle_setup
为true
,使插件跳过该物品的处理 - 更多详情请参见:战利品表数据包
- 由于存在限制,并非所有类型的战利品表都受支持。目前仅
empty
和entity
类型经过测试可正常工作
- 新增权限节点
feathermorph.acquire_morph
,用于控制特定玩家是否可以通过游戏行为解锁伪装形态 - 新增权限节点
feathermorph.disguise_use_real_uuid
,用于控制伪装形态是否应使用玩家的真实 UUID 创建虚拟实体- 这可能有助于提升与 Simple Voice Chat 等模组的兼容性
- 但请注意,这应被视为一种 变通方案 或 临时修复
- 玩家现在可以使用
/discard-morph
命令丢弃已解锁的伪装形态
问题修复
- 当目标为有效实体时,猫和狼的伪装形态未正确应用项圈颜色
/fm make_disguise_tool
命令未正确注册- AI 修改功能在某些配置下注入失败并导致日志刷屏
其他变更
- AI 修改功能在新安装实例中默认关闭
- 我们现在重新使用 NMS 注入目标行为(goal),因为使用 API 会导致问题……
完整更新日志:https://github.com/NiFeather/FeatherMorph/compare/2.4.2...2.4.3
2.4.2
on 2025 Oct 08此版本可能需要一些手动操作
伪装工具(Disguise Tool)和魔法瓶(Magic Bottle)的合成配方现在通过数据包(datapack)注册。虽然这提供了更高的自定义灵活性,但如果你想单独禁用其中某个配方,则需要安装一个配方管理插件。
如果你已经使用配方管理插件禁用了相关配方,则无需进行任何操作。(因为该数据包使用的配方 ID 与旧版本行为一致)
已知此版本在 Folia 上存在 AI 修改功能的问题。我们建议在 Folia 服务器上尽快禁用此功能
修复内容
- 某些生物在本应因玩家而恐慌时未触发恐慌
- 猫和豹猫缺少针对玩家伪装状态的攻击目标
- 已驯服的生物仍会执行自定义攻击目标
其他更新
- 移除了
MorphBasicAvoidPlayerGoal
中的调试输出("ToAvoid is xxxxx")造成的日志刷屏问题 - 确保
MorphBasicAvoidPlayerGoal
中目标实体与运行中的生物处于同一线程- 此前无人报告相关问题,但为防万一做了处理 :D
2.4.0
on 2025 Aug 24新功能
- 在 https://github.com/NiFeather/FeatherMorph/pull/46 中,@MATRIX-feather 将伪装中的 NBT 使用替换为伪装属性
- 这会影响伪装的构建和同步
- 此功能允许玩家更自定义他们的伪装,而无需先创建一个实体。
- 玩家需要升级他们的客户端模组。当 1.22 到来或我们到达 2026 年时,计划结束对使用 NBT 同步伪装的遗留 API 实现的客户端的支持
- 目前尚未实现用于自定义属性的权限控制。
- 更多详细信息,请查看 https://github.com/NiFeather/FeatherMorph/pull/46
- 对于 Residence 集成:
- 在没有
place
权限的住宅内的玩家,在伪装时将不再能够留下雪痕 - 在没有
use
权限的住宅内的玩家,将不再能够激活他们的伪装技能
- 在没有
其他
- 调整了 CommonEventProcessor 中 PlayerRegisterChannelEvent 的监听优先级
- 为了让某人闭嘴,使他们不再在私信中向我抱怨 HuskSync 再次破坏了模组功能
2.3.5
on 2025 Aug 24新功能
- 现在可以通过设置
main_hand
属性来设置玩家伪装的主手 - 玩家现在可以消耗任何具有有效组件的物品来解锁新的伪装。
/fm query
命令现在接受多个玩家作为参数/request send
命令现在接受多个玩家作为参数
错误修复
- 修复了一个长期存在的问题,即切换
Modify Boundingboxes
选项时不会正确通知客户端重新连接 - 有时服务器的表情 GUI 不会显示表情名称。
- 离线伪装总是在 UUID 检查中失败
- 修复了一个潜在的问题,即玩家退出时玩家伪装的航路点不会被删除
其他
- 我们现在使用
addTransientModifier
来添加属性修饰符- 这意味着我们添加的修饰符将不再被游戏保存。
- 带有
morph:fake_equip
技能的伪装现在默认总是复制显示有效的目标实体的装备,即使它为空。 - 使用
getListeningPluginChannels
来检查玩家注册的插件通道
API
- API 级别现在是 5
- 现在可以通过 API 获取插件的首选和所有支持的插件通道
- 现在可以监听插件是否恐慌
- 目前,只有在不支持 Minecraft 版本时,此插件才会恐慌
- 替换了
runWhenAPILoaded
的使用为getApiFuture
,它返回一个CompletableFuture <FeatherMorphAPI>
- 添加了
PlayerConnection
,可用于监听玩家客户端登录、获取他们实现的 API 或断开他们的连接。断开客户端现在需要一个Exception
作为原因。
2.3.4
on 2025 Aug 08此版本旨在解决伪装路点的几个问题。
错误修复
- 在使用 MorphAzimuthWaypointConnection 时,如果伪装为玩家在世界之间旅行时服务器崩溃
- MorphAzimuthWaypointConnection 有相对较大的偏差
- 玩家在世界之间旅行时,伪装路点不跟随
2.0.3
on 2025 Aug 08Bug 修复
伪装为玩家时服务器崩溃,如果未安装 PacketEvents1.21.4 不受影响
其他
- 添加了语言文件 ru_ru.json
- 一些尝试修复潜在的线程安全问题
2.3.3
on 2025 Aug 08错误修复
- 当伪装为玩家时,如果未安装 PacketEvents 会导致服务器崩溃
其他
- 进行了一些尝试来修复潜在的线程安全问题
2.3.0
on 2025 Jul 22Bug 修复
- 修复了一些潜在问题
其他
- 添加了 Sentry 日志记录器
- Sentry 日志记录器是一种遥测技术,我们使用它自动上传 FeatherMorph 中发生的错误
- 此功能默认禁用,你可以在配置文件中查看更多详细信息
2.2.2
on 2025 Jul 11我们建议升级到此热修复版本,以防止 AI 修改中的潜在错误,该错误可能导致实体被服务器删除。
新功能
- 现在伪装成快乐的幽灵允许玩家飞行
错误修复
- 修复了一个错误,其中 MorphManager#getDisguiseStateFor(Player) 会抛出意外异常,这可能导致 FeatherMorphNearestAttackableGoal 失败和相关实体消失
2.0.2
on 2025 Jul 11我们建议升级到这个热修复版本,以防止 AI 修改中可能出现的错误,该错误可能导致实体被服务器删除。
错误修复
- 修复了一个错误,其中
MorphManager#getDisguiseStateFor(Player)
会抛出意外异常,这可能导致FeatherMorphNearestAttackableGoal
失败和相关实体消失
2.2.1
on 2025 Jul 04请注意,在一段时间内踩踏伪装成快乐的幽灵的玩家可能会因飞行而被服务器踢出。在server.properties
中启用allow-flight
可能有助于解决此问题。
您可能还想查看2.2.0 变更日志。
其他
- 我们现在是 1.21.7
2.2.0
on 2025 Jun 27请注意,在一段时间内踩踏伪装成快乐的幽灵的玩家可能会因飞行而被服务器踢出。在server.properties
中启用allow-flight
可能有助于解决此问题。
您可能需要最新的 2.9.0 PacketEvents 开发版本,可在其描述页面上找到。
新功能
- 实现了伪装航点功能
- 这将在玩家伪装自己时替换他们的航点
- 为快乐的幽灵添加了对幽灵变种的支持
错误修复
- 僵尸村民观察者在应用村民类型和职业时使用了错误的值设置
2.0.0
on 2025 Jun 15通过深度求索翻译的更新日志,经过了一些人工校对
新特性
- 实现了新的模组通信协议
- 插件仍支持V2(1.21.3 ~1.21.4)和V1(1.21.3-)版本
- 添加了魔法瓶
- 可以收集友好生物和其他玩家的伪装
- 可以使用红石和玻璃瓶合成,潜行并与实体互动以进行收集
- 相应的权限节点:使用(
feathermorph.magic_bottle.use
)和排除(feathermorph.magic_bottle.exclude
)- “使用”节点决定玩家是否可以使用魔法瓶功能
- “排除”节点决定玩家是否可以成为形态收集的目标
- 玩家解锁新伪装时现在会出现粒子效果
- 为新插件物品添加了模组/资源包本地化支持
- 在1.21.5版本中为猪、牛和鸡添加了变体支持
- 为唤魔者技能添加了激进的动画
- 添加了实验性交互镜像控制器
BY_RANGE
- 对于使用客户端集成的玩家,我们建议安装最新的1.21.5模组版本(≥ 0.11.2)以避免潜在问题
- 启用时,动作将同步到原始目标和伪装成该目标的附近玩家
- 如果玩家未伪装,动作将同步到伪装成他们的附近玩家
/fm stat
命令现在会显示当前玩家数据后端
漏洞修复
- 唤魔者能力修复:
- 修复了尖牙不在台阶上生成或在错误位置生成的问题
- 尖牙生成不再受玩家俯仰角/偏航角影响
- 可以对非生物实体尝试快速伪装
- 修复了控制台命令自动补全不断弹出“此命令目前仅对玩家可用。”的问题
杂项
- 从ProtocolLib迁移到PacketEvents
- 现在FeatherMorph需要PacketEvents 2.8.0或更高版本才能使用服务器渲染器!
- 移除了ModelEngine支持
- 更改了实例网络的行为
- 注意! 2.x版本的实例网络与1.x版本不兼容!
- 子实例服务器现在将在连接时从主服务器同步玩家数据,而不是从本地插件目录读取
- 将API事件移至
xyz.nifeather.morph.api.events
- API版本现在是3
- 添加了新的API事件
DataStoreSwitchEvent
- 当
MorphManager
设置新的数据存储后端时触发
- 当
- 为Folia上的Towny集成问题添加了一些解决方法
- 插件现在将尝试在玩家离开服务器时还原对玩家所做的更改
- 尝试修复在Linux上实例网络重启期间出现的
java.net.BindException: Address already in use
问题 - 调整了唤魔者能力的实现:
- 插件现在将尝试让召唤的恼鬼靠近召唤者
- 召唤的恼鬼现在将更积极地尝试攻击目标
- 当服务器难度为和平模式时,玩家始终可以通过潜行召唤恼鬼
- 每个玩家最多可召唤6只恼鬼
- 玩家解除伪装时,召唤的恼鬼将被移除
- 移除了玩家列表修改功能
- 调整了攻击动画触发条件
- 改进了伪装选择服务器图形用户界面的实现
- 玩家头部伪装不再包含取消伪装行为
- 将Java-WebSocket从1.5.7升级到1.6.0
- 重新迁移技能配置中的属性修饰符以解决Windows迁移漏洞
- 更新检查现在会返回更详细的结果
2.1.0
on 2025 Jun 15通过深度求索翻译的更新日志,经过了一些人工校对
新特性
- 实现了新的模组通信协议
- 插件仍支持V2(1.21.3 ~1.21.4)和V1(1.21.3 -)版本
- 添加了魔法瓶
- 可以收集友好生物和其他玩家的伪装
- 可以使用红石和玻璃瓶合成,潜行并与实体互动以进行收集
- 相应的权限节点:使用(
feathermorph.magic_bottle.use
)和排除(feathermorph.magic_bottle.exclude
)- “使用”节点决定玩家是否可以使用魔法瓶功能
- “排除”节点决定玩家是否可以成为形态收集的目标
- 玩家解锁新伪装时现在会出现粒子效果
- 为新插件物品添加了模组/资源包本地化支持
- 在1.21.5版本中为猪、牛和鸡添加了变体支持
- 为唤魔者技能添加了激进的动画
- 添加了实验性的交互镜像控制器
BY_RANGE
- 对于使用客户端集成的玩家,我们建议安装最新的1.21.5模组版本(≥ 0.11.2)以避免潜在问题
- 启用时,动作将同步到原始目标以及伪装成该目标的附近玩家
- 如果玩家未伪装,动作将同步到伪装成他们的附近玩家
/fm stat
命令现在会显示当前玩家数据后端
漏洞修复
- 唤魔者能力修复:
- 修复了尖牙不在台阶上生成或在错误位置生成的问题
- 尖牙的生成不再受玩家俯仰角/偏航角的影响
- 可以对非生物实体尝试快速伪装
- 修复了控制台命令自动补全不断弹出“此命令目前仅对玩家可用。”的问题
杂项
- 从ProtocolLib迁移到PacketEvents
- 现在FeatherMorph需要PacketEvents 2.8.0或更高版本才能使用服务器渲染器!
- 移除了ModelEngine支持
- 更改了实例网络的行为
- 注意! 2.x版本的实例网络与1.x版本不兼容!
- 子实例服务器现在在连接时将从主服务器同步玩家数据,而不是从本地插件目录读取
- 将API事件移至
xyz.nifeather.morph.api.events
- API版本现在是3
- 添加了新的API事件
DataStoreSwitchEvent
- 当
MorphManager
设置新的数据存储后端时触发
- 当
- 为Folia上的Towny集成问题添加了一些解决方法
- 插件现在将尝试在玩家离开服务器时还原对玩家所做的更改
- 尝试修复在Linux上实例网络重启期间出现的
java.net.BindException: Address already in use
问题 - 调整了唤魔者能力的实现:
- 插件现在将尝试让召唤出的恼鬼保持在召唤者附近
- 召唤出的恼鬼现在将更积极地尝试攻击目标
- 当服务器难度为和平模式时,玩家始终可以通过潜行召唤恼鬼
- 每个玩家最多可召唤6只恼鬼
- 玩家解除伪装时,召唤出的恼鬼将被移除
- 移除了玩家列表修改功能
- 调整了攻击动画触发条件
- 改进了伪装选择服务器图形用户界面的实现
- 玩家头部伪装不再包含取消伪装行为
- 将Java-WebSocket从1.5.7升级到1.6.0
- 重新迁移技能配置中的属性修饰符以解决Windows迁移漏洞
- 更新检查现在会返回更详细的结果