⚙️ 配置
简介
本文所说的配置,指每个包中的 configuration 文件夹,也就是 resources/<包名>/configuration/。该目录支持 JSON 和 YAML 配置文件,也可以按需创建任意层级的子目录。
进阶用法
配置段标识符
YAML 不允许在同一层级重复使用相同的键,因此不能在一个文件中直接编写多个同名配置段。例如,以下写法无效:
items:
default:topaz_helmet:
template: default:topaz_armor
arguments:
part: helmet
slot: head
blocks:
default:topaz_ore:
...更多内容
items:
default:topaz_boots:
template: default:topaz_armor
arguments:
part: boots
slot: feet
要在同一文件中定义多个同类配置段,可以在名称后添加 # 和任意标识符:
items#0:
default:topaz_helmet:
template: default:topaz_armor
arguments:
part: helmet
slot: head
blocks:
default:topaz_ore:
...更多内容
items#1:
default:topaz_boots:
template: default:topaz_armor
arguments:
part: boots
slot: feet
路径分隔符
使用 :: 可以把多层映射压缩为单个键。以下两种写法完全等效:
# 单行格式
key::subkey::nested_key: value
# 展开格式
key:
subkey:
nested_key: value
信息
这种写法可以减少重复缩进,让部分配置更紧凑。
按版本应用配置
提示
普通用户通常无需使用此功能。需要同时兼容多个 Minecraft 版本时,可以让部分配置只在指定版本生效。
CraftEngine 支持三种版本条件:
- 固定版本:
$$1.21.4 - 版本范围:
$$1.20.1~1.21.4 - 版本比较:
$$>=1.21.4,$$<1.21.8
这些条件既可用于选择值,也可用于覆写或合并配置段。
示例 1:选择值
items:
default:topaz_trident:
material: trident
client_bound_material:
$$1.20.1~1.21.1: bow
$$1.21.2~1.21.3: honey_bottle
$$fallback: xxx
data:
item_name: <!i><#FF8C00><i18n:item.topaz_trident>
components:
minecraft:max_damage: 300
示例 2:合并配置段
items:
default:topaz_trident:
material: trident
data:
item_name: <!i><#FF8C00><i18n:item.topaz_trident>
components:
minecraft:max_damage: 300
$$>=1.21.2:
client_bound_data:
components:
minecraft:consumable:
consume_seconds: 128000
animation: spear
指定数据类型
需要明确指定 float、long 或 short 等数据类型时,可以在值前添加 !!<type>:
long_value: !!long 1234
float_value: !!float 12.34
byte_value: !!byte 1
short_value: !!short 123
byte_array_value: !!ByteArray [1,2,3,4]
int_array_value: !!IntArray [1,2,3,4]
long_array_value: !!LongArray [1,2,3,4]
double_array_value: !!DoubleArray [1.1,2.2,3.3,4.4]
int_list: !!IntList [1,2,3]
long_list: !!LongList [1,2,3]
double_list: !!DoubleList [1,2,3]
子包
子包可以根据服务器版本选择性加载配置,也可以用于集中管理同一包的不同变体。
# pack.yml
author: XiaoMoMi
version: 0.0.1
description: CraftEngine 默认资产
namespace: default
subpacks:
$$>=1.21.4:
pack_a: true
$$<1.21.4:
pack_b: true
pack_c: true
pack_d: false
resources