1.5.7
on 2025 Apr 04新特性
- 新增了城镇(Towny)集成命令
town_morph_flags
,可用于设置有关变形的城镇设置。- 注意!这会替换原有的
toggle-town-morph-flight
命令及其设置,并且现在居民和受信任的玩家在城镇中始终可以飞行。 - 目前,有两个可调整的标识(flags):
allow_outsiders_flight
:是否允许外来者在城镇中飞行。allow_outsiders_use_skill
:是否允许外来者在城镇中激活技能。
- 目前能力不受这些标识控制,但将来会受其控制。
- 注意!这会替换原有的
其他
- 一些小的性能优化。
- 当执行“躺下”动作时,插件现在会尝试让伪装的朝向与床的朝向保持一致。
API
- API版本现已提升至 2。
- 将 SkillType 和 AbilityType 移至API,并将它们重命名为 SkillNames 和 AbilityNames。
1.5.6
on 2025 Apr 04新特性
- 该插件现在会尝试避免玩家坐在伪装成“苦力怕”的其他玩家身上。
漏洞修复
- 当玩家从一种伪装切换到另一种伪装时,玩家的最大生命值不再出现缩放问题。
- 当玩家伪装后重新加入服务器时,管理员的客户端集成无法感知到这一情况的问题已修复。
其他
- “监守者”的“向下挖掘”动作不再会使玩家消失,取而代之的是玩家只会变得隐形。
API
FeatherMorphDirectAccess#请求管理器
现在将返回IManageRequests
(管理请求接口),而不是RequestManager
(请求管理器类)。- 修复了调用
FeatherMorphDirectAccess#请求管理器
会抛出空依赖异常
的问题。- 有人使用了错误的类型
- 添加了
APIMeta
(API元数据),可用于查找一些API元数据。- 目前仅能查询API版本。
- 添加了
UtilitiesAlpha#从玩家查找伪装UUID
和UtilitiesAlpha#是否为服务器后端
。- 如果服务器正在运行服务器后端,
从玩家查找伪装UUID
可用于查找某人伪装的虚拟实体UUID。 - ……并且
是否为服务器后端
可用于检查服务器是否正在运行服务器后端。
- 如果服务器正在运行服务器后端,
1.5.5
on 2025 Feb 19新特性
- 新增了实验性的FeatherMorphAPI
- 目前,我们仅有一个
FeatherMorphDirectAccess
来允许人们访问插件的内部组件,以及一个仅有两个功能的UtilitiesAlpha
🧐
- 目前,我们仅有一个
漏洞修复
HealsFromEntityAbility
在Folia的近期版本中会抛出从多个线程访问LegacyRandomSource
的异常- 交互镜像的距离被硬编码为100个方块,而不是配置文件中所配置的距离。
其他
- 我们在服务器关闭时不再尝试恢复AI修改。
- 调整了服务器渲染器的实现方式。
1.5.4
on 2025 Feb 05插件的一个热修复版本在某些情况下(比如击杀怪物或登出时)会对新玩家抛出非法状态异常。
漏洞修复
- 有时插件无法正确处理新玩家的数据
1.5.3
on 2025 Feb 02漏洞修复
- 一些管理命令无法正确使用输入ID过滤伪装。
- 在运行时禁用客户端集成会导致所有使用FMC的1.21.4版本玩家断开连接。
其他
- 当头部变形(Headmorph)功能被禁用时,尝试激活该功能将不再收到有关其已被禁用的反馈。
- 更新插件基础(PluginBase)
- 尝试修复可能存在的内存泄漏问题。
- 调整了交互镜像(Interaction Mirror)的实现方式。
1.3.5
on 2025 Jan 19注意!
对旧版权限节点的支持现已结束!
请确保在更新之前将所有相关权限移动到新前缀feathermorph.XXX
!
新功能
- 添加了指定伪装属性(变体)的初步支持
- 目前仅通过伪装命令!
- 使用方法:
/morph <id> <properties>
- 例如,伪装为带有手臂的盔甲架:
/morph minecraft:armor_stand [armor_stand_show_arms=true]
- 对于多个属性:
/morph foo:bar [property1=value1, property2=value2,...]
- 例如,伪装为带有手臂的盔甲架:
- 现在可以通过配置指定禁用伪装功能的世界
config.yml > world_option > disabled_worlds
- 凋零骷髅伪装现在可以使玩家免疫凋零效果
- 添加了新的占位符
feathermorph_state_provider_is?<namespace>
,以识别玩家伪装的类别(命名空间)- 例如,要识别玩家是否使用玩家伪装:
feathermorph_state_provider_is?player
- 要识别玩家是否伪装为生物:
feathermorph_state_provider_is?minecraft
- 例如,要识别玩家是否使用玩家伪装:
- 添加了新的占位符
feathermorph_state_id_is?<id>
,以识别玩家是否使用特定的伪装。- 例如,要识别玩家是否伪装为 Creaking:
feathermorph_state_id_is?minecraft:creaking
- 例如,要识别玩家是否伪装为 Creaking:
错误修复
- 玩家断开连接后客户端会话未被清除
/papi reload
后占位符扩展不再可用- 插件不会下载与当前运行版本匹配的 Minecraft 语言文件
- Towny 集成在将玩家添加到城镇时尝试处理离线玩家
其他
- 我们现在是一个纯 Paper 插件!
- 这意味着 Spigot 服务器不再能够加载此插件
- 对旧版权限节点(
xiamomc.morph.XXX
)的支持未被弃用!请迁移到新的权限节点(feathermorph.XXX
)!- 例如,
xiamomc.morph.chat_override
现在是feathermorph.chat_override
- 例如,
- 将占位符名称从
morph_...
更改为feathermorph_...
- 更改了 FeatherMorph 与客户端模组的通信方式
- 调整了占位符扩展的行为
- 如果参数无效或玩家未伪装,现在将返回更具体的反馈
- 玩家伪装不再具有自定义名称元数据
- 我们现在使用 Brigadier 注册命令
1.5.1
on 2025 Jan 19注意!
对旧版权限节点的支持现已结束!
请确保在更新之前将所有相关权限移至新前缀feathermorph.XXX
!
新功能
- 添加了对指定伪装属性(变体)的初始支持
- 目前仅通过伪装命令!
- 使用方法:
/morph <id> <properties>
- 例如,伪装为带有手臂的盔甲架:
/morph minecraft:armor_stand [armor_stand_show_arms=true]
- 对于多个属性:
/morph foo:bar [property1=value1, property2=value2,...]
- 例如,伪装为带有手臂的盔甲架:
- 现在可以通过配置指定禁用伪装功能的世界
config.yml > world_option > disabled_worlds
- 玩家现在可以通过打破一个自然且活跃的 Creaking 之心来解锁 Creaking 伪装
- 为 Creaking 伪装添加了两个动作
- 劫掠者现在将尝试避免伪装为 Creaking 的玩家
- 凋零骷髅伪装现在可以使玩家免疫凋零效果
- 添加了新的占位符
feathermorph_state_provider_is?<namespace>
,用于识别玩家伪装的类别(命名空间)- 例如,要识别玩家是否使用玩家伪装:
feathermorph_state_provider_is?player
- 要识别玩家是否伪装为生物:
feathermorph_state_provider_is?minecraft
- 例如,要识别玩家是否使用玩家伪装:
- 添加了新的占位符
feathermorph_state_id_is?<id>
,用于识别玩家是否使用特定伪装。- 例如,要识别玩家是否伪装为 Creaking:
feathermorph_state_id_is?minecraft:creaking
- 例如,要识别玩家是否伪装为 Creaking:
错误修复
- 玩家断开连接后客户端会话未被清除
/papi reload
后占位符扩展不再可用- 插件未下载与当前运行版本匹配的 Minecraft 语言文件
- Towny 集成在将玩家添加到城镇时尝试处理离线玩家
其他
- 我们现在是一个纯 Paper 插件!
- 这意味着 Spigot 服务器不再能够加载此插件
- 对旧版权限节点(
xiamomc.morph.XXX
)的支持未被弃用!请移至新的权限节点(feathermorph.XXX
)!- 例如,
xiamomc.morph.chat_override
现在是feathermorph.chat_override
- 例如,
- 将占位符名称从
morph_...
更改为feathermorph_...
- 更改了 FeatherMorph 与客户端模组的通信方式
- 调整了占位符扩展的行为
- 如果参数无效或玩家未伪装,现在将返回更具体的反馈
- 玩家伪装不再具有自定义名称元数据
- 我们现在使用 Brigadier 注册命令
1.5.0.rc4
on 2025 Jan 19注意!
对旧版权限节点的支持现已结束!
请确保在更新之前将所有相关权限移至新前缀feathermorph.XXX
!
新功能
- 现在可以通过配置指定禁用伪装功能的世界
config.yml > world_option > disabled_worlds
错误修复
- 在
/papi reload
之后,占位符扩展不再可用 - 迁移到布里杰之后,一些选项不再可通过
/fm option
命令进行调整
其他
- 对旧版权限节点(
xiamomc.morph.XXX
)的支持未被弃用!请移至新的权限节点(feathermorph.XXX
)!- 例如,
xiamomc.morph.chat_override
现在是feathermorph.chat_override
- 例如,
- 调整了占位符扩展的行为
- 如果参数无效或玩家未伪装,则现在返回更具体的反馈
1.5.0.rc3
on 2025 Jan 03新功能
- 添加了对指定伪装属性(变体)的初始支持
- 目前仅通过伪装命令!
- 使用方法:
/morph <id> <properties>
- 例如,伪装为带有手臂的盔甲架:
/morph minecraft:armor_stand [armor_stand_show_arms=true]
- 对于多个属性:
/morph foo:bar [property1=value1, property2=value2,...]
- 例如,伪装为带有手臂的盔甲架:
错误修复
- 在初始化伪装工具的配方时会发生无法获取遗留材料的键的情况
- 在运行最新版本的 Paper 时,打开 GUI 会导致服务器崩溃
其他
- 我们现在是一个纯 Paper 插件!
- 这意味着 Spigot 服务器不再能够加载此插件
- 在
/fm manage
下的所有子命令现在都接受实体选择器(@a
,@p
等) - 可以再次不带参数运行
/fm reload
(并且它会像以前一样重新加载配置和语言)
1.5.0.rc2
on 2024 Dec 31其他
- 嘎吱作响的伪装现在只能通过破坏一个自然生成且活跃的嘎吱作响的心来解锁
- 调整后的怪物 AI 修改实现