25w04a

来自Minecraft Wiki
跳转到导航 跳转到搜索
25w04a
版本
类型
快照
发布日期
2025年1月22日
快照归属
  •  DEC1073742055
  •  HEX400000E7

25w04aJava版1.21.5的第3个快照,发布于2025年1月22日[1],加入了数据包定义猫和青蛙变种的功能,扩展了物品堆叠组件控制防御、物品损坏音效、物品模型物品提示框的能力,并修复了一些漏洞。

新内容[编辑 | 编辑源代码]

常规[编辑 | 编辑源代码]

语言
  • 加入了对吉尔吉斯语的支持。
数据包
  • 青蛙变种现在由数据包定义。
注册表
  • 加入了SPAWN_CONDITION_TYPE和​DATA_COMPONENT_PREDICATE_TYPE固有注册表。
物品堆叠组件
  • 加入了NBT复合标签/JSON对象blocks_attacks组件。
    • 玩家持拥有此组件的物品能像盾牌一样抵挡攻击。
    • 格式如下:
  • NBT复合标签/JSON对象blocks_attacks 物品堆叠组件
    • 单精度浮点数block_delay_seconds:(值≥0,默认为0)成功抵挡攻击前需要按住右键的秒数。
    • 单精度浮点数disable_cooldown_scale:(值≥0,默认为1)被可禁用抵挡的攻击击中时,物品冷却时长的乘数。为0时,此物品不能被攻击禁用。
    • NBT列表/JSON数组damage_reductions:控制可抵挡多少伤害。未指定时,可抵挡一切伤害。
      • NBT复合标签/JSON对象:控制可挡下的伤害量和伤害类型。抵挡成功时,伤害减少clamp(base + factor * 所受攻击伤害, 0, 所受攻击伤害)
        • 单精度浮点数base:(默认为0)固定抵挡的伤害。
        • 单精度浮点数factor:(默认为1)应被抵挡的伤害比例。
        • NBT列表/JSON数组字符串type:可抵挡的伤害类型。允许单个ID、列表或标签。未指定则表示对所有伤害有效。
    • NBT复合标签/JSON对象item_damage:控制攻击对物品造成的耐久损耗。未指定时,每次攻击损耗物品1点耐久。物品耐久最终损耗floor(threshold, base + factor * 所受攻击伤害)。最终值可以为负数以使物品修复。
      • 单精度浮点数threshold:(值≥0,默认为1)攻击对此物品造成的最低耐久度损耗。
      • 单精度浮点数base:(默认为0)损耗物品固定耐久度。
      • 单精度浮点数factor:(默认为1)所受攻击伤害的乘数。
    • 字符串block_sound:成功抵挡攻击时播放的声音事件。
    • 字符串disabled_sound[2]:此物品被攻击禁用时播放的声音事件。
  • 加入了字符串break_sound组件。
    • 存在时,物品因耐久耗尽而损坏时播放此声音事件。
    • 不存在时,物品损坏时不会播放任何音效。
    • 此组件是每个物品类型的默认组件之一。
    • 示例:break_sound='item.wolf_armor.break'
  • 加入了字符串provides_banner_patterns组件,需为一个包含旗帜图案ID的标签。[3]
    • 存在时,物品可被放入织布机的图案槽位,并且可以为旗帜绘制标签内的图案。
    • 示例:provides_banner_patterns='minecraft:pattern_item/globe'
  • 加入了字符串provides_trim_material组件,需为一个包含盔甲纹饰材料ID的标签。
    • 存在时,物品将向盔甲纹饰配方提供指定的纹饰材料。
    • 在内置锻造配方中使用时,此物品必须在#trim_material标签中。
    • 因此,盔甲纹饰材料注册表定义不再指定物品ID。
    • 示例:provides_trim_material='minecraft:iron'
  • 加入了NBT复合标签/JSON对象tooltip_display组件,以隐藏由任何组件提供的提示框文本。
    • 因此,布尔型show_in_tooltip字段、NBT复合标签/JSON对象hide_additional_tooltipNBT复合标签/JSON对象hide_tooltip组件被取代。
    • 此组件是每个物品类型的默认组件之一。
    • 格式如下:
  • NBT复合标签/JSON对象tooltip_display 物品堆叠组件
    • 布尔型hide_tooltip:(默认为false)物品提示框是否总是隐藏。
    • NBT列表/JSON数组hidden_components:(默认为[])一个物品组件ID列表,列表内的所有组件提供的提示框文本都会被隐藏。如果组件不提供提示框文本,则对其没有效果。
      • 字符串:一个物品堆叠组件ID。
物品模型映射
  • 加入了component条件型(condition)模型属性:
    • 使用物品组件谓词来匹配物品组件。
      • 类似于物品子谓词,但是,不是将它们编码为<谓词类型>:<谓词值>的映射,而是将单个谓词编码为两个字段:
    • 字符串*predicate:组件谓词类型。可以为damage、​enchantments、​stored_enchantments、​potion_contents、​custom_data、​container、​bundle_contents、​firework_explosion、​fireworks、​writable_book_content、​written_book_content、​attribute_modifiers、​trim和​jukebox_playable中之一。
    • 任意类型*value:谓词指定的值。
通用变种选择器
  • 具有生成规则的变种现在使用统一方法选择,过程如下:
    • 每个变种字段NBT列表/JSON数组spawn_conditions的每一表项包含一个条件和一个整数优先级
    • 给定实体类型的所有变种的条件将根据生成实体的位置进行评估,然后游戏从剩余优先级最大的表项中随机选取一项
    • 如果不存在任何条件,则变种保持默认值
  • 格式如下:
  • NBT列表/JSON数组spawn_conditions:通用变种选择器。
    • NBT复合标签/JSON对象
      • 整型*priority:选中此条件的优先级。
      • NBT复合标签/JSON对象*condition:一项生成条件。
        • 字符串type:生成条件类型。如果此字段不存在,则条件始终为真。
          如果字符串typebiome,则匹配生成位置的生物群系,附加下列字段:
        • NBT列表/JSON数组字符串*biomes:单个生物群系ID、列表或生物群系标签。
          如果字符串typemoon_brightness,则匹配生成位置的月亮亮度,附加下列字段:
        • NBT复合标签/JSON对象单精度浮点数*range:单个浮点数或如{"min": 1, "max": 2}一样的对象。
          • 单精度浮点数*min:最小亮度值。
          • 单精度浮点数*max:最大亮度值。
          如果字符串typestructure[4],则匹配生成位置是否在结构中,附加下列字段:
        • NBT列表/JSON数组字符串*structures:单个结构ID、列表或结构标签。
猫变种定义格式青蛙变种定义格式
  • 猫的变种可通过data/<命名空间>/cat_variant/<id>.json来添加。
  • 青蛙的变种可通过data/<命名空间>/frog_variant/<id>.json来添加。
  • 文件格式如下:
  • NBT复合标签/JSON对象 父标签
    • 字符串*asset_id:此变种纹理资产的命名空间ID,会被解析为assets/<命名空间>/textures/<路径>.png
    • NBT列表/JSON数组spawn_conditions通用变种选择器
  • 这两项特性均属于实验性功能。
粒子数据格式
  • 粒子类型tinted_leaves现在具有新参数color,可以为一个整数或一个4浮点数列表。
纹理图集
  • paletted_permutations纹理图集源中加入了新字段:
    • 字符串separator:(默认为_)连接原始纹理和置换调色板以生成精灵图名称时使用的分隔符。
标签
  • 加入了实体标签#can_wear_horse_armorhorse

更改[编辑 | 编辑源代码]

物品[编辑 | 编辑源代码]

  • 现在其物品提示框中会显示装填的所有物品,而非只有首个物品。
    • 其中装填的所有物品也会将它们的完整提示框以分段形式加入。
容器
  • 所有容器方块物品现在会像潜影盒一样在提示框中显示其中的前5个物品(若有)。
地图
  • 没有map_id组件的地图不再在其提示框中显示“未知地图”。
    • 无效ID仍会产生此提示。
蜂巢蜂箱
  • 现在其方块物品默认具有block_state组件。

非生物实体[编辑 | 编辑源代码]

喷溅药水滞留药水
  • 移除了potion实体类型。现在代表喷溅药水和滞留药水的实体被拆分为splash_potion和​lingering_potion

游戏内容[编辑 | 编辑源代码]

移动
  • 由于考虑到MC-271065MC-152728的修复对跑酷、速搭和移动造成了太多副作用,因此回退了这2项修复。

命令格式[编辑 | 编辑源代码]

SNBT
  • SNBT现在接受异构列表,即接受不同类型元素的列表。
    • 为保持兼容性,NBT格式未变化。
    • 从SNBT转换到NBT时(如作为/data/summon的参数),会将异构列表转换为可被NBT格式接受的形式。
      • 例如,['a', {'b':3}]会存储为[{'': 'a'},{'b':3}]
      • 从NBT转换到SNBT时(如使用/data显示),上述转换不会逆向进行。

常规[编辑 | 编辑源代码]

进度定义格式
  • background字段不再需要textures/前缀和.png后缀。
数据包
  • 将数据包版本号更改为64
注册表
  • CAT_VARIANT和​FROG_VARIANT注册表现在变为可写注册表。
  • 移除了ITEM_SUB_PREDICATE_TYPE注册表。
物品堆叠组件
  • weapon组件进行以下更改:
    • 移除了布尔型can_disable_blocking字段。
    • 加入了单精度浮点数disable_blocking_for_seconds字段(值>0,默认为0),非零时,用此武器进行的成功攻击将会禁用盾牌指定秒数。
  • 移除了hide_additional_tooltip组件。
    • 世界升级时,此组件将被NBT复合标签/JSON对象tooltip_display组件取代,由此组件隐藏的组件提示框将加入NBT列表/JSON数组hidden_components列表中,这些组件包括:
      • banner_patterns
      • bees
      • block_entity_data
      • block_state
      • bundle_contents
      • charged_projectiles
      • container
      • container_loot
      • firework_explosion
      • fireworks
      • instrument
      • map_id
      • painting/variant
      • pot_decorations
      • potion_contents
      • tropical_fish/pattern
      • written_book_content
  • attribute_modifiers、​dyed_color、​can_place_on、​can_break、​enchantments和​stored_enchantments组件中的布尔型show_in_tooltip字段已被移除,现在它们总是使用简化形式。
  • 移除了jukebox_playable、​trim和​unbreakable组件中的布尔型show_in_tooltip字段。
  • 移除了hide_tooltip组件。
  • 对实体应用的组件现在会从物品转移到所生成的实体上:
    • custom_name→任何实体
    • potion_contents→滞留药水→区域效果云
    • potion_duration_scale→滞留药水→区域效果云
物品模型映射
  • component枚举属性:
    • 如果选择的值来自注册表但当前数据包未提供此值,则此项将被静默忽略。
    • 此前,无法识别的元素导致整个物品模型都被忽略。
配方
  • smithing_transform配方中的base字段现在是必选的。
  • smithing_trim配方:
    • base、​template和​addition字段现在是必选的。
    • 加入了字符串pattern字段,控制配方中应用哪个纹饰图案。
      • 示例:"pattern": "minecraft:bolt"
战利品表函数
  • toggle_tooltipstoggles映射表中现在支持任意组件ID。
    • 现在会在tooltip_display组件中切换所指定的组件。
盔甲纹饰定义格式
  • 不再包含template_item和​ingredient字段。
狼变种定义格式
  • angry_texture、​tame_texture和​wild_texture现已合并到NBT复合标签/JSON对象assets,且分别重命名为字符串angry字符串tame字符串wild
  • 加入了NBT列表/JSON数组spawn_conditions字段,详见上文
猪变种定义格式
  • texture和​biome字段现已分别被字符串asset_idNBT列表/JSON数组spawn_conditions取代。
测试实例定义格式
  • NBT复合标签/JSON对象字符串batch现被重命名为NBT复合标签/JSON对象字符串environment
测试环境定义格式
  • 字符串type现在接受weather而非raining
标签
  • 将伤害类型#bypasses_shield重命名为#bypasses_blocking
  • test_block和​test_instance_block均添加到#dragon_immune和​#wither_immune方块标签中。
  • 移除了猫变种标签。
资源包
  • 将资源包版本号更改为49

修复[编辑 | 编辑源代码]

修复了47个漏洞
1.21前正式版的漏洞
  • MC-98271 — 持盾牌格挡的音效只能被其他玩家(不包含格挡的人)听到。
  • MC-101556 — 下界传送门的传送范围过大(相当于一个完整的方块)。
  • MC-165421 — 气泡柱对风弹起反效果。
  • MC-165461 — 装载后,即使仍按住右键,弩的装载动画也会停止。
  • MC-176233 — 装载后,弩不再播放过渡动画。
  • MC-200311 — 进度背景纹理引用与模型不一致。
  • MC-255756 — 玩家导致盾牌损坏时,攻击者听不到盾牌损坏音效。
  • MC-279646 — 用F11切换全屏不会更新视频设置菜单中的全屏选项。
1.21.1的漏洞
  • MC-276061 — 用无陶片饰纹陶罐替换其他饰纹陶罐时,只要不重进,陶片类型就不会更新。
1.21.3的漏洞
  • MC-278400 — 箭和三叉戟击中在流动的熔岩中的方块后继续移动。
1.21.4的漏洞
  • MC-279653 — 执行/setblock命令后,方块实体数据失去同步。
1.21.5开发版本的漏洞
  • MC-279217 — 箭和三叉戟击中在流动的熔岩中的方块后不停旋转。
  • MC-279218minecraft:enchant.thorns.hit音效未在生物或玩家被荆棘魔咒杀死时播放。
  • MC-279225 — 穿着皮革靴子的玩家落于细雪上时会抖动,且落点略高。
  • MC-279232 — SNBT文本组件禁止列表中存在样式混合的文本。
  • MC-279389minecraft:entity.arrow.hit_player音效在玩家被自己发射的箭击中的播放。
  • MC-279454hide_additional_tooltip不再隐藏成书上的作者和程度。
上个开发版本的漏洞
  • MC-279480test_instance_block.reset_success字符串将单词“succeeded”错拼为“succeded”。
  • MC-279481 — 枯叶不再在森林或疏林恶地生成。
  • MC-279482 — 测试方块和测试实例方块菜单内的元素不能由Tab ↹键依次选择。
  • MC-279483 — 启动模式测试方块即使没有文本框,也会显示“消息:”文本。
  • MC-279485 — 测试方块和测试实例方块菜单具有模糊背景。
  • MC-279486 — 测试实例方块界面中显示的某些字符串不可翻译。
  • MC-279487 — 测试实例方块界面中的“测试实例ID”和“测试结构大小”文本离右侧太远。
  • MC-279488 — 枯叶在黑森林中非常稀疏。
  • MC-279489 — 尝试创建大小较大的测试时出现意料之外的错误。
  • MC-279490 — 尝试重置不存在的测试时未显示命令反馈消息。
  • MC-279491 — 在不存在测试的情况下使用/test run命令显示commands.test.no_tests源翻译键。
  • MC-279492 — 尝试定位不存在的测试时出现意料之外的错误。
  • MC-279493 — 使用/test create命令时未显示命令反馈消息。
  • MC-279498 — 测试方块和测试实例方块不在#minecraft:dragon_immune和​#minecraft:wither_immune标签中。
  • MC-279502 — 将美西螈装桶时,其变种不再保存。
  • MC-279504 — 物品模型的枚举属性中,值为“minecraft:enchantments”的组件字段不生效。
  • MC-279505 — 禁用马铠的马类生物仍会显示一个不可交互的槽位。
  • MC-279511 — 玩家在使用minecraft:always_pass的测试区域内会使世界异常。
  • MC-279518 — 测试环境接受minecraft:raining而非minecraft:weather
  • MC-279519 — 测试命令字符串中的某些单词总为复数。
  • MC-279522 — 游戏测试入口点不加载zip格式数据包。
  • MC-279527 — 游戏测试入口点不加载通过数据包加入的自定义测试。
  • MC-279538 — 表示测试环境命名空间ID的测试实例字段的键名与更新日志所述不同。
  • MC-279539 — 村民变种组件未在生成僵尸村民时对其应用。
  • MC-279553 — 玩家在斜向移动时使用物品不再将身体转至移动方向。
  • MC-279570 — 部分活塞操作不发出毗邻更新。
  • MC-279573test_instance_block.error.no_test字符串缺少单词“no”。
  • MC-279588 — 测试实例字段错拼为“sky_accesss”。
  • MC-279599/test pos在Y和Z轴上偏移1格。
  • MC-279601test.error.expected_entity_at_pos翻译缺失。

参考[编辑 | 编辑源代码]

  1. "Minecraft Snapshot 25w04a" – Minecraft.net,2025年1月22日
  2. 更新日志中称为disable_sound
  3. 尽管更新日志称需要#前缀,但实际上不需要,见MC-279698
  4. 更新日志中称为structures

导航[编辑 | 编辑源代码]