25w42a.md 18 KB


version-image-link: https://dl.z.wiki/autoupload/fr/XTxqEIEXt3ek2iMfNVy0xHr9SBDGMOz2CzLFKIoBJwSyl5f0KlZfm6UsKj-HyTuv/20251015/7LYI/1170X500/image.png server-jar: https://piston-data.mojang.com/v1/objects/d9c6cfd4ba84f5080206259d2563f75796f14470/server.jar translator: 最亮的信标

cats: ['1.21','1.21.11']

更改

  • 水下生物群系雾的颜色以及雾的距离现在基于玩家在群系之间的位置混合,就像普通生物群系雾以及天空颜色那样
  • 更新了“金光闪闪”进度以包含金矛以及金鹦鹉螺铠
  • 当骑乘在僵尸马上的生物被移除,僵尸马可以被拴绳拴住
  • 鹦鹉螺和僵尸鹦鹉螺在陆地上现在也可以被控制了
  • 突进不再不兼容经验修补

技术性更改

  • 数据包版本现在为 90
  • 资源包版本现在为 70.1

Minecraft 服务端管理协议版本 1.1.0

  • 在网页浏览器中启用验证
    • 当打开 WebSocket 连接时通过在 Sec-WebSocket-Protocol 头中传递 token 验证
      • 例如:Sec-WebSocket-Protocol: minecraft-v1, <token>
    • 以这种方式进行验证的请求会受到 Origin 头检查。为此需要在服务器端通过配置 management-server-allowed-origins 指定允许的来源。默认值为空,这意味着基于 Sec-WebSocket-Protocol 的验证实际上被禁用

数据包版本 90

  • 特定视觉效果以及游戏效果现在由环境属性控制

命令

  • 资源建议现在显示任何命名空间的结果,而不再仅为 minecraft

stopwatch 的更改

  • 更改了 id 参数的位置
    • 例如: /stopwatch foo:bar create 现在为 /stopwatch create foo:bar
  • query 现在会返回被查询的数值,并接受一个新的 scale 参数
    • 返回的数值会按该参数进行缩放并向下取整(截断)
    • scale 为可选,缺省时默认为 1
    • 示例:/stopwatch query foo:bar 20 获取经过的刻数

环境属性

环境属性提供了一种数据驱动的方式来控制多种视觉与游戏性系统。

每个环境属性控制一个特定的视觉或游戏效果:例如,minecraft:visual/sky_color 控制天空的颜色,而 minecraft:gameplay/water_evaporates 控制某位置是否可以放置水。

[!DEVNOTE] 该系统及本次引入的许多属性应视为高度实验性,它们在后续快照与正式版本中仍可能发生显著变化。与此同时,一如既往,我们期待并欢迎你提出任何反馈或建议!

来源

环境属性的数值可由以下环境属性来源提供(按优先级从低到高列出):

  • 维度
  • 生物群系

环境属性的“有效”数值(即游戏中实际呈现的)将根据各来源的优先级,对它们提供的数值进行组合。

例如,以下情形:

  • 主世界维度提供 sky_color = #00ff00(绿色)
  • 平原生物群系提供 sky_color = #ff0000(红色)

当玩家处于平原群系时,会看到红色的 sky_color;而在主世界的其他位置,则看到绿色。

当某个环境属性来源提供一个环境属性时,它可以:

  • 覆盖该数值,如上例中平原生物群系覆盖了主世界的 sky_color
  • 对之前的数值应用一个修饰符(见下文“修饰符”章节)

修饰符

如上例所述,一个环境属性来源可以直接覆盖某属性数值。然而,有时也希望对低优先级来源提供的数值施加一个修饰符,而非直接覆盖。

例如,以下情形:

  • 主世界维度提供 water_fog_radius = 96.0
  • 平原生物群系使用乘法修饰符(multiply 0.85)修改 water_fog_radius

当处于平原时,water_fog_radius 解析为 96.0 * 0.85 = 81.6;在主世界的任何其它群系则解析为 96.0。

可用的修饰符类型取决于环境属性的类型。最基础且每个环境属性都支持的修饰符是 override,它仅作为对前一个数值的覆盖。若来源未显式指定修饰符,则默认为 override。

所有可用修饰符及其行为的完整描述见下文“通用修饰符”章节。

插值

修饰符描述的是某来源提供的数值如何作用于先前来源的数值;而“插值”描述的是同一个来源内部多个数值之间的组合。插值发生在该来源的修饰符应用之后。

只有部分环境属性支持插值。支持插值可以在两个或多个数值之间平滑过渡,例如在两个生物群系之间移动时。

例如,以下情形:

  • 平原群系提供 sky_color = #ff0000(红)
  • 沙漠群系提供 sky_color = #ffff00(黄)

sky_color 就是一个会基于位置平滑过渡的属性:在上述情形中,玩家从平原移动到沙漠时,天空颜色会逐渐从红转为黄。而其它属性,如 water_evaporates,表示离散值,不会进行平滑过渡 —— 只考虑玩家所在精确位置的那个群系。

生物群系之间的平滑过渡基于相机周围 8 格半径内的生物群系。占据该半径更大体积且更接近相机的群系,对最终插值结果影响更大。

环境属性映射

维度类型与生物群系定义包含一个新的 attributes 字段,允许它们定义环境属性。

该映射通常是一个对象,将环境属性 ID 映射到其对应取值,例如:

"attributes": {
"minecraft:visual/fog_color": "#ffaa00",
"minecraft:gameplay/water_evaporates": true
}

像上面这样直接定义的值,总是假定使用 override 修饰符。

不过,也可以展开值对象以表达不同的修饰符,格式为一个对象,字段如下:

  • modifier: 可选 字符串修饰符 ID,取决于属性类型(见下文“通用修饰符”)
    • 默认:override
  • argument: 修饰符参数(格式取决于所选修饰符)
    • 参数的使用方式也取决于修饰符类型

例如,以下定义表示将 water_fog_radius 乘以 85%:

"attributes": {
    "minecraft:visual/water_fog_radius": {
    "modifier": "multiply",
    "argument": 0.85
    }
}

通用数据类型

以下数据类型会在环境属性系统的多个部分复用,后续章节会引用它们。

RGB 颜色

格式可以是以下之一:

  • 十六进制 RGB 颜色字符串,形式 #rrggbb
  • 浮点数组,3 个分量,范围 0 到 1,形式 [r, g, b]
  • 打包 RGB 整数
ARGB 颜色

格式可以是以下之一:

  • 十六进制 ARGB 颜色字符串,形式 #aarrggbb
  • 浮点数组,4 个分量,范围 0 到 1,形式 [a, r, g, b]
  • 打包 ARGB 整数
粒子选项

一个粒子的完整定义,包括任何特定类型属性(类似 /particle 命令)。

例如:

{
    "type": "minecraft:block_crumble",
    "block_state": {
        "Name": "minecraft:dirt"
    }
}

通用修饰符

每个环境属性都有一个特定的“值类型”,它描述数值必须如何定义、支持哪些修饰符,以及如何插值。有些类型非常专用,另一些则被多个属性复用。

虽然下表并不穷尽,但以下属性类型在很多环境属性中常用:

布尔修饰符

参数格式:布尔值

  • override
  • and
  • nand
  • or
  • nor
  • xor
  • xnor
浮点修饰符

参数格式:float

  • override
  • add
  • subtract
  • multiply
  • minimum
  • maximum
颜色修饰符

参数格式:RGB 颜色(alpha_blend 例外)

  • override
  • add —— 分量逐项相加的颜色混合
  • subtract —— 分量逐项相减的颜色混合
  • multiply —— 分量逐项相乘的颜色混合
  • alpha_blend —— 常规的 α 混合(图像编辑软件常见)
    • 参数格式:ARGB 颜色
    • 当参数 α 为 1 时,行为等同 override(不进行混合)

新的环境属性

minecraft:visual/fog_color

(相机未沉浸在其它介质时的)雾颜色。注意:最终数值还会受时间、天气与药水效果影响。

  • 值类型: RGB 颜色
  • 默认值: #000000
  • 修饰符: 颜色修饰符
  • 可插值: 是
  • 在摄像机的位置解析
  • 替代了生物群系属性 effects.fog_color
minecraft:visual/extra_fog

(相机未沉浸在其它介质时)控制是否使用稠密雾(如下界的那种)。

  • 值类型: 布尔值
  • 默认值: false
  • 修饰符: 布尔修饰符
  • 可插值: 否
  • 在摄像机的位置解析
minecraft:visual/water_fog_color

在水下时的雾颜色。注意:最终数值还受时间、天气与药水效果影响。

  • 值类型: RGB 颜色
  • 默认值: #050533
  • 修饰符: 颜色修饰符
  • 可插值: 是
  • 在摄像机的位置解析
  • 替代了生物群系属性 effects.water_fog_color
minecraft:visual/water_fog_radius

从相机起始的距离,水下雾在该距离达到最大密度。 注意:最终数值还受玩家在水下停留时长影响。

  • 值类型: 非负浮点值
  • 默认值: 96.0
  • 修饰符: 浮点修饰符
  • 可插值: 是
  • 在摄像机的位置解析
  • 替代了生物群系标签 #has_closer_water_fog
minecraft:visual/sky_color

天空颜色。仅在主世界天空中可见。注意:最终数值还受时间与天气影响。

  • 值类型: RGB 颜色
  • 默认值: #000000
  • 修饰符: 颜色修饰符
  • 可插值: 是
  • 在摄像机的位置解析
  • 替代了生物群系属性 effects.sky_color
minecraft:visual/cloud_opacity

云的不透明度。若为 0,云完全禁用,并且快乐恶魂在云层高度不会更快恢复生命。

  • 值类型: 0 到 1 之间的浮点值
  • 默认值: 0.0
  • 修饰符: 浮点修饰符
  • 可插值: 是
  • 在摄像机的位置或在快乐恶魂恢复生命的位置渲染
minecraft:visual/cloud_height

所有云出现的高度。

  • 值类型: 浮点值
  • 默认值: 192.33
  • 修饰符: 浮点修饰符
  • 可插值: 是
  • 在摄像机的位置或在快乐恶魂恢复生命的位置渲染
  • 替代了维度类型属性 cloud_height
minecraft:visual/default_dripstone_particle

当上方没有流体时,从钟乳石方块滴落的默认粒子。

  • 值类型: 粒子选项
  • 默认值: {type:"minecraft:dripping_dripstone_water"}
  • 修饰符: override
  • 可插值: 否
  • 在滴水石锥的位置解析
  • 替代了维度类型属性 ultrawarm
minecraft:visual/ambient_particles

控制在相机周围随机生成的环境粒子。

  • 值类型: 含有下列字段的对象组成的列表
    • particle: 要生成粒子的粒子选项
    • probability: 0 到 1 的浮点数,在一次随机刻中若该方块为空则生成粒子的概率
  • 默认值: []
  • 修饰符: override
  • 可插值: 否
  • 在摄像机的位置解析
  • 替代了生物群系属性 effects.particle
minecraft:audio/background_music

控制背景音乐的播放方式与曲目。

  • 值类型: 含有下列字段的对象
    • default: 可选含有下列字段的对象:
      • sound: 要播放的声音事件
      • min_delay: int,两次曲目之间的最小刻延迟
      • max_delay: int,两次曲目之间的最大刻延迟
      • replace_current_music: 可选布尔值,此曲目是否可替换当前正在播放的曲目
        • 默认值: false
      • 若未定义且未被其它值覆盖,则该属性激活期间不会开始播放音乐
    • underwater: 可选 对象,与 default 格式相同 —— 若存在且玩家在水下,则覆盖 default
    • creative: 可选 对象,与 default 格式相同 —— 若存在且玩家处于创造模式,则覆盖 default
  • 默认值: {}
  • 修饰符: override
  • 可插值: 否
  • 在摄像机的位置解析
  • 替代了生物群系属性 effects.music
minecraft:audio/music_volume

音乐应播放的音量。任何正在播放的音乐会随着时间淡入/淡出至该值。

  • 值类型: 0 到 1 之间的浮点值
  • 默认值: 1.0
  • 修饰符: 浮点修饰符
  • 可插值: 否
  • 在摄像机的位置解析
  • 替代了生物群系属性 effects.music_volume
minecraft:audio/ambient_sounds

控制相机周围播放的环境音及其触发方式。

  • 值类型: 含有下列字段的对象
    • loop: 可选 声音事件,持续循环播放的声音
    • mood: 对象,字段;基于周围黑暗程度随机播放的氛围声音
      • sound: 要播放的声音事件
      • tick_delay: int,两次氛围声音之间的刻数(假设光照等级为 0)
      • block_search_extent: int,用于采样光照等级的半径
      • offset: double,对播放位置应用的额外距离偏移
    • additions: 对象列表,字段;随机播放的附加声音
      • sound: 要播放的声音事件
      • tick_chance: 0 到 1 的浮点数,每刻播放给定声音的概率
  • 默认值: {}
  • 修饰符: override
  • 可插值: 否
  • 在摄像机的位置解析
  • 替代了生物群系属性 effects.ambient_sound、 effects.mood_sound 以及 effects.additions_sound
minecraft:gameplay/can_start_raid

若为 false,拥有袭击之兆的玩家无法触发袭击。

  • 值类型: 布尔值
  • 默认值: true
  • 修饰符: 布尔修饰符
  • 可插值: 否
  • 在袭击将要开始的位置解析
  • 替代了维度类型属性 has_raids
minecraft:gameplay/water_evaporates

若为 true:无法用水桶放置水;融化的冰不会生成水;湿海绵放置后会变干;钟乳石不会从泥巴产生水。

  • 值类型: 布尔值
  • 默认值: false
  • 修饰符: 布尔修饰符
  • 可插值: 否
  • 在交互的位置解析
  • 替代了维度类型属性 ultrawarm
minecraft:gameplay/bed_rule

控制床是否可用于睡觉,以及是否可用于设置重生点。

  • 值类型: 含有下列字段的对象
    • can_sleep: 取值之一:
      • always —— 床总是可睡(前提:未被阻挡且附近无怪)
      • when_dark —— 仅在全局天空光照等级 < 4 时可睡
      • never —— 不可睡
    • can_set_spawn —— 同 can_sleep
    • explodes —— 可选布尔值,若为 true,交互时床会爆炸
      • 默认值: false
    • error_message: 可选文本组件,玩家无法睡觉或设置重生点时显示的信息
  • 默认值: {type:"can_sleep_when_dark",error_message:{translate:"block.minecraft.bed.no_sleep"}}
  • 修饰符: override
  • 可插值: 否
  • 在床头位置解析
  • 替代了维度类型属性 bed_works
minecraft:gameplay/respawn_anchor_works

控制重生锚是否可用于设置重生(或实际重生)。若为 false,充能后会爆炸。

  • 值类型: 布尔值
  • 默认值: false
  • 修饰符: 布尔修饰符
  • 可插值: 否
  • 在重生锚的位置解析
  • 替代了维度类型属性 respawn_anchor_works
minecraft:gameplay/nether_portal_spawns_piglin

控制下界传送门方块是否会生成猪灵。

  • 值类型: 布尔值
  • 默认值: false
  • 修饰符: 布尔修饰符
  • 可插值: 否
  • 在随机一个下界传送门方块的位置解析
  • 替代了维度类型属性 natural
minecraft:gameplay/fast_lava

控制岩浆是否应流动得更快、更远,并在流动时对实体施加更强推力。

  • 值类型: 布尔值
  • 默认值: false
  • 修饰符: 布尔修饰符
  • 可插值: 否
  • 在整个维度位置解析,单个生物群系内无效
  • 替代了维度类型属性 ultrawarm
minecraft:gameplay/increased_fire_burnout

控制火是否会比正常更快熄灭。

  • 值类型: 布尔值
  • 默认值: false
  • 修饰符: 布尔修饰符
  • 可插值: 否
  • 在火的位置解析
  • 替代了维度类型属性 #increased_fire_burnout
minecraft:gameplay/piglins_zombify

控制猪灵与疣猪兽是否会僵尸化。

  • 值类型: 布尔值
  • 默认值: true
  • 修饰符: 布尔修饰符
  • 可插值: 否
  • 在正在僵尸化的实体的位置解析
  • 替代了维度类型属性 piglin_safe
minecraft:gameplay/snow_golem_melts

控制雪傀儡是否应受到伤害(融化)。

  • 值类型: 布尔值
  • 默认值: false
  • 修饰符: 布尔修饰符
  • 可插值: 否
  • 在雪傀儡的位置解析
  • 替代了生物群系标签 #snow_golem_melts

维度类型

  • 为维度新增 attributes 字段以指定环境属性
    • 格式信息参见“环境属性”章节
  • 多个字段迁移为环境属性:
    • 注意:这些属性的形式可能与原字段不完全相同
    • ultrawarm -> minecraft:gameplay/water_evaporates, minecraft:gameplay/fast_lava, visual/default_dripstone_particle
    • bed_works -> minecraft:gameplay/bed_rule
    • respawn_anchor_works -> minecraft:gameplay/respawn_anchor_works
    • cloud_height -> minecraft:visual/cloud_height
    • piglin_safe -> minecraft:gameplay/piglins_zombify
    • has_raids -> minecraft:gameplay/can_start_raid
    • natural(注:未移除) -> minecraft:gameplay/nether_portal_spawns_piglin

生物群系

  • 为生物群系新增 attributes 字段以指定环境属性
    • 格式信息参见“环境属性”章节
    • 注意:某些属性(如 gameplay/fast_lava)不按位置评估,因此不能在生物群系上设置
  • effects 下的多个子字段迁移为环境属性:
    • 注意:这些属性的形式可能与原字段不完全相同
    • fog_color -> minecraft:visual/fog_color
    • water_fog_color -> minecraft:visual/water_fog_color
    • sky_color -> minecraft:visual/sky_color
    • particle -> minecraft:visual/ambient_particles
    • ambient_sound, mood_sound, additions_sound -> minecraft:audio/ambient_sounds
    • music -> minecraft:audio/background_music
    • music_volume -> minecraft:audio/music_volume

物品组件

minecraft:kinetic_weapon

  • 新增字段:
    • contact_cooldown_ticks: 整型,击中并与实体失去接触后再次可以命中的冷却刻数
      • 默认值:10

生物群系标签

  • 移除 #snow_golem_melts 与 #increased_fire_burnout —— 由 gameplay/snow_golem_melts 与 gameplay/increased_fire_burnout 环境属性替代
  • 移除 #plays_underwater_music —— 由 audio/background_music 环境属性中的 only_underwater 字段替代
  • 移除 #has_closer_water_fog —— 由 visual/water_fog_radius 环境属性替代

资源包版本 70.1

音效

  • 为鹦鹉螺新增音效事件:
    • entity.nautilus.riding