- 修复了
delay-configuration-load: false
修复了盔甲纹饰配方
为弹射物物品设置添加sounds.throw选项
YAML:settings: projectile: item: default:topaz_trident translation: 0,0,0 rotation: 1,1,1,1 display_transform: NONE scale: 0.5 sounds: throw: minecraft:item.trident.throw- 修复了未使用的自定义方块没有空方块行为的问题
- 修复了定向附着方块的一些错误
现在您可以自定义弹射物的音效了
YAML:settings: projectile: item: default:topaz_trident translation: 0,0,0 rotation: 1,1,1,1 display_transform: NONE scale: 0.5 sounds: throw: minecraft:item.trident.throw hit_entity: minecraft:item.trident.hit hit_block: minecraft:item.trident.hit_ground
任何音效配置均支持复杂配置格式
YAML:sounds: throw: id: minecraft:item.trident.throw pitch: 0.9~1 volume: 1
hit_block和hit_entity支持根据击中目标来更改音效类型
YAML:sounds: hit_block: default: minecraft:item.trident.hit overrides: minecraft:stone: minecraft:item.trident.hit_stone default:palm_log: minecraft:item.trident.hit_log
我已经完成了原版弹射物的自定义外观和一些基本属性的设置。将来我可能会考虑添加一个带有自定义刻逻辑的弹射物行为系统,但这并不是我近期会做的事情
物品设置/可装载的弹射物
物品设置/弹射物
改进 folia 中光照更新器的线程安全性
CraftEngine 26.5 – 重大更新!
这是 CraftEngine 的一次重大更新。从现在起,版本号将采用年.月.修订号的格式
我们进行了超过 80000 行代码的修改和 600 多次提交,因此,与其列出冗长的更新日志,不如请查阅维基页面了解具体更新内容
以下几点请务必注意:
stem_block现已为其下方的方块添加了过滤。请查阅文档以更新您的配置,或使用新的默认配置来解决瓜茎的问题- 在 26.1 版本中,已放置的地物发生了重大变更。如果你希望继续使用默认的地物配置,请从插件文件中提取新版本的默认配置文件
- 本次更新包含大量 API 变更——这些变更已足够稳定,足以支持未来一整年的更新
需要更新方面的帮助吗?
如果您有一个需要兼容最新版 CraftEngine 的开源项目,或者有一个仅支持旧版本而不兼容新版本的插件——我们很乐意为您提供免费帮助。只需通过 GitHub Issues 或 QQ群 联系我们即可
- 添加 26.1+ 文本组件支持
- 重写 nbt 组件序列化以改进 netty 线程上的文本替换性能
![]()
config.yml
如果您使用的是 BlueMap,请不要忘记禁用YAML:# 启用此选项将生成一个与其他地图插件(如 BlueMap)兼容的资源包 map-plugin-compatibility: enable: false path: "./generated/resource_pack_map.zip"restore-vanilla-blocks-on-chunk-unload
![]()
为 BlueMap 添加了自定义方块对应视觉方块的相同着色- 修复自26.4最后一个快照版本的第三项更新的版本以来,导致在某些服务器上解码器无法正常工作的问题
- 修复图腾动画触发
修复图腾动画自定义声音
在 1.20-1.21.3 版本中,已无需挂载 Bytebuddy Agent 来注入自定义方块
重构了资源包验证系统- 现在,高版本的模型格式可以自动转换为旧版本,并生成叠加资源包
- 修复了自最近更新以来农作物方块行为异常的问题
- 为农作物方块行为添加了触发 BlockGrowEvent 事件
![]()
基于 1.21.6-1.21.10 和 1.21.11-26.1 版本构建的模型现已支持旧版客户端
我开发了一套算法,可将模型转换为等效的低版本格式模型。除极少数可能无法转换的模型外,大多数都能正常运行。低版本使用转换后的模型,而高版本则在叠加资源包下使用原始模型。
- 我在之前的版本中犯了一个小小的UV贴图错误,现在已经修复了
![]()
- 添加了
remove_lore和insert_lore物品数据类型
为客户侧物品数据添加了加密- 改进了自定义弹射物的生成数据包
- 修复了在 26.1+ 中右键座椅时出现的
建筑高度上限是319错误- 为成书添加了标签解析支持(需要添加一些配置,见下方示例)
- 添加了空音效文件,客户端不再提示音效缺失
- 为表情添加了
content_override,允许根据不同情况显示不同内容YAML:items: # 为原版物品设置 process_written_book_tags,可正确处理成书中的 <image> 和 <l10n> 等标签 minecraft:written_book: client_bound_data: process_written_book_tags: {}YAML:templates: default:emoji/basic: content: <!shadow><white><arg:emoji></white></!shadow> content_overrides: chat: <hover:show_text:'<l10n:emoji.tip:"<arg:keyword>":"<arg:emoji>">'><!shadow><white><arg:emoji></white></!shadow></hover> book: <hover:show_text:'<arg:keyword>'><!shadow><white><arg:emoji></white></!shadow></hover> anvil: <!i><!shadow><white><arg:emoji></white></!shadow></!i>
- 修复客户端侧物品数据移除自定义数据的错误
YAML:client_bound_data: remove_components: - custom_data
修复oversized_in_gui选项
修复了包含自定义方块的附魔数据包会出现网络协议错误的问题- 添加了对 Canvas 26.1 的兼容性
- 改进了资源包的混淆处理
- 经过混淆的
item_model组件
![]()
- 下面的资源包是应用了全新的混淆后的结果,其中包括对
items文件夹和overlay的完全混淆
【latest_obfuscation_example.zip】
修复了上次混淆更新音效被破坏client-bound-data以及<image>等标签现已支持在对话框中使用
修复已知问题
修复了一些在Folia服务端上的已知问题
为服务器添加了世界数据迁移工具,用于将 CraftEngine 数据迁移至 26.1 版本
![]()
- 进一步完善了家具行为(现已达到一个我非常满意的版本)
- 为避免在正式发布时产生歧义,重命名了部分类,因此在此版本中修改了其中一部分。后续还会有更多的类重命名
- 完善了锻造升级配方中对于通过丢弃整个物品堆操作进行合成的逻辑
- 修复了合成配方中当对带有函数但无视觉效果的配方通过丢弃整个物品堆操作进行合成时会错误地多次触发函数的问题
以下为首次发布 CraftEngine 前的进度更新:
我知道这是一个雄心勃勃的目标,但我在此承诺:我预计在四月中旬前完成以下所有内容。
- 重构方块实体与动态渲染器
![]()
- 改进战利品系统
![]()
- 重构资源包生成与验证
(进行中)![]()
- 可染色方块实体(将使用新的方块实体 API 实现)
![]()
- 发光家具行为(将使用新的家具行为系统实现)
![]()
- 随机数生成、装备套装加成及药水效果
(进行中)![]()
- 26.1 版本支持
- 全面的最终功能测试
- BlockBehavior、BlockEntity、FurnitureBehavior 及基础操作的官方 API 文档
- 改进了家具每刻执行代码的 API 的工作方式
- 改进了家具自定义数据的存储逻辑
- 修复了在 Folia 中利用重力方块复制特性复制带有可下落方块行为的自定义方块时出现的跨区域线程错误
- 改进了音符盒的交互方式
修复了在禁用光线追踪时实体剔除无法正常工作的问题- 修复了在未配置碰撞箱且启用实体剔除时家具不可见的问题
- 战利品表现在可以直接从数据包中使用
- 重构了方块实体API:现在一个方块可以支持多种方块实体行为
如果您的服务器资源包支持 1.21.5 及更早版本,则为 ModelEngine 玩家头颅添加了额外的修复逻辑
添加了新的区块存储方式:pdc
[MD]> 如果你的服务器尚未正式上线,可以尝试使用此模式 —— 由于 Paper 1.21.2+ 版本已重写了区块系统,该模式的性能将更佳[/MD]
方块实体渲染器现在支持conditions
修复了bush_block行为- 为方块物品添加了
block_state组件支持
修复了当entity-culling设为 false 时实体渲染器出现的错误
修复区块生成时流体推动方块行为的错误- 修复无方块行为的方块无法旋转的问题
- 新的方块行为 API(稳定版)
- 添加
glowing_furniture家具行为若想创建类似 nexo 的可开关光源家具,只需通过事件切换变体即可实现YAML:behaviors: - type: glowing_furniture variants: ground: - 0,0,0 15 - 1,0,0 15 lights: # 未匹配到变体时的备用光源 - 0,1,1 15
当前版本的发光家具尚未完全完善,光源效果目前仅在数据包层面实现,下一版本将在服务端实装完整的光照系统
- 为
glowing_furniture家具行为添加服务端光源
重构了物品行为 API- 为
minecraft:custom_data组件添加了 CustomDataSerializer API
添加了tint_source_block方块行为- 修复了一些发光家具的错误
tint_source_block是一种方块实体行为,可为实体渲染器提供色调来源。你也可以通过 API 注册自定义色调来源。此视频展示了一个例子,我略微修改了display_item_block方块实体行为,使其充当色调来源
![]()
YAML:appearances: xxx: state: barrier entity_renderer: - item: default:cap position: 0.5,1,0.5 # 完整配置 tint_source: type: default components: - dyed_color index: 0 # 简写形式,但这种方式无法设置色调来源索引, # 也无法使用通过 API 注册的自定义色调来源 tint_source: - dyed_color此外,还为方块实体新增了一个方法,用于从放置此方块的物品中加载自定义数据。其工作方式类似于 https://zh.minecraft.wiki/w/数据组件#block_entity_data 所描述的那样YAML:behaviors: - type: display_item_block # 色调来源索引 0 tint_source: true position: 1.5,1,0 data_key: item_a - type: display_item_block # 不作为色调来源 tint_source: false position: 1.5,1,1.5 data_key: item_b - type: tint_source_block # 色调来源索引 1
![]()
该功能仍不稳定,请勿在生产环境中使用
- 修复了在事件部分调用
cancel_event无法阻止放置行为发生的问题- 修复了
grass_block方块行为未按预期工作的问题- 修复了当色调未设置默认值时模型无法加载的问题
- 修复了合成配方崩服的问题
- 为家具控制器 API 添加了
loadCustomDataFromItem方法,并更改了onPlace的触发时机- 为锻造升级配方的后处理器添加了
apply_data函数
26.1 版本支持(部分)- 添加了
dye配方类型(26.1+)
修复了收纳袋和潜影盒的客户端侧数据或材料在 26.1 版本中的问题
修复了 26.1 版本中的家具交互问题- 添加了方块实体容器 API
- 添加了
drawer_block方块行为及默认配置- 添加了
fuel_remainder物品设置
![]()
配置更改
- 修复了当抽屉内物品堆叠数量超过 64 时,漏斗无法传输物品的问题
- 修复了保存世界时物品堆叠数量变为 1 的问题
- 修复一次性放入超过存储上限的物品时,手中超出的部分会被消耗并丢失的问题
max_storage_count->max_stacks
![]()
添加这些选项以修复头颅在 26.1 或更高版本 GUI 的展示问题Diff:items: default:gui_head_size_1: material: player_head client_bound_data: profile: <arg:player.name> hide_tooltip: - minecraft:profile model: type: minecraft:special path: minecraft:item/custom/gui_head_size_1 generation: parent: minecraft:item/template_skull gui_light: front display: gui: translation: 0,8,0 scale: 2,2,2 model: type: minecraft:player_head + transformation: + left_rotation: -1,0,0,0 + translation: 0.5,0,0.5
- 添加了烛台默认配置示例
- 修复了 26.1+ 调色盘注入
- 修复了 26.1+ 不能在流体里游泳
- 修复了抽屉方块行为的一些问题
is_randomly_ticking方块设置现在已弃用,现在由方块行为控制- 修复了自定义已放置的地物无法通过
grass_block方块行为放置的问题- 添加了 26.1+ 格式的新特性
- 为
stem_block方块行为添加了fruit_bottom_blocks和fruit_bottom_block_tags选项- 硬编码属性
rotation现在支持数据包中的rotate和mirrorDiff:- type: stem_block fruit: default:hami_melon attached_stem: default:attached_hami_melon_stem + fruit_bottom_blocks: + - minecraft:farmland + - minecraft:dirt![]()
![]()
- 修复插件无法在 1.20.4 及以下版本启动
- 添加可着色沙发示例
修复客户端侧物品数据没有应用于自定义弹射物- 为
set_cooldown函数添加t时间单位
修复 FastAsyncWorldEdit 兼容性
修复了inject-block-entity与 Canvas 1.21.11+ 的兼容性问题- 修复了重启后无法处理无条件的自定义配方的问题
- 在玩家加入时重定位 Netty 管道中的处理器顺序,以修复依赖 packetevents 的插件的潜在兼容性问题
附件
更新日志(可能不完整,因为我可能忘记了一些更改)
- 增加了对 26.1 资源包的支持
- 不再使用任何 java 反射完成 nms 操作。完全依赖于 asm 生成的代码进行调用
- 添加了多线程配置读取,大幅度提升插件在解析大量配置时的速度。同时配置文件异常会以更加优雅的方式抛出
- 更多的异步的配方加载,配方重载不再会在 folia 上导致崩溃
use_remainder现在已经可以为原版物品配置- 添加了
heal和spawn_mythic_mob函数- 修复属性修饰符无法使用
saddle槽位- 优化了
section类型的区块注入模式- 添加了
none类型的世界存储- 家具元素添加了
tint_source选项,以支持自定义着色源(如地图、药水瓶)- 添加了
attack触发器,on参数现已支持列表- 烧炼配方现已支持条件
- 添加了
use_remainder物品数据类型- 添加了
simple_storage_furniture家具行为
为 folia 核心添加了同步方块实体/家具 tick api 支持- 小问题修复(如果发现任何错误请报告,我会尽快修复)
重构了与资源包托管相关的代码- 修复了若干小问题
![]()
- 添加物品展示柜家具示例(功能类似于物品框,但展示的是掉落物)
- 修复了若干问题
将实体剔除效率提升了7~9%,并修复了一个错误
重构了自动ID分配器并修复了一些错误- 修复了
dispaly_item_furniture的拼写错误。在本版本中,您需要将其替换为display_item_furniture
修复了在优化实体剔除版本后,破坏方块光线追踪出现错误的问题。
修复了玩家无法在家具上放置方块的问题
- 改进了方块状态生成
- 改进了 pack.mcmeta 对重名的叠加资源包合并逻辑
hit-times参数对创造模式玩家不再生效- 修复了家具旋转过快时出现的异常问题
- 修复了方块破坏进度未能正确广播的问题
- 为
/ce debug item-data命令新增--client-side标志
为锻造升级配方新增count支持