25w04a
跳转到导航
跳转到搜索
25w04a
25w04a是Java版1.21.5的第3个快照,发布于2025年1月22日[1],加入了数据包定义猫和青蛙变种的功能,扩展了物品堆叠组件控制防御、物品损坏音效、物品模型和物品提示框的能力,并修复了一些漏洞。
新内容[编辑 | 编辑源代码]
常规[编辑 | 编辑源代码]
- 加入了对吉尔吉斯语的支持。
- 加入了
SPAWN_CONDITION_TYPE
和DATA_COMPONENT_PREDICATE_TYPE
固有注册表。
- 加入了blocks_attacks组件。
- 玩家持拥有此组件的物品能像盾牌一样抵挡攻击。
- 格式如下:
- blocks_attacks 物品堆叠组件
- block_delay_seconds:(值≥0,默认为
0
)成功抵挡攻击前需要按住右键的秒数。 - disable_cooldown_scale:(值≥0,默认为
1
)被可禁用抵挡的攻击击中时,物品冷却时长的乘数。为0
时,此物品不能被攻击禁用。 - damage_reductions:控制可抵挡多少伤害。未指定时,可抵挡一切伤害。
- :控制可挡下的伤害量和伤害类型。抵挡成功时,伤害减少
clamp(base + factor * 所受攻击伤害, 0, 所受攻击伤害)
。- base:(默认为
0
)固定抵挡的伤害。 - factor:(默认为
1
)应被抵挡的伤害比例。 - type:可抵挡的伤害类型。允许单个ID、列表或标签。未指定则表示对所有伤害有效。
- base:(默认为
- :控制可挡下的伤害量和伤害类型。抵挡成功时,伤害减少
- item_damage:控制攻击对物品造成的耐久损耗。未指定时,每次攻击损耗物品1点耐久。物品耐久最终损耗
floor(threshold, base + factor * 所受攻击伤害)
。最终值可以为负数以使物品修复。- threshold:(值≥0,默认为
1
)攻击对此物品造成的最低耐久度损耗。 - base:(默认为
0
)损耗物品固定耐久度。 - factor:(默认为
1
)所受攻击伤害的乘数。
- threshold:(值≥0,默认为
- block_sound:成功抵挡攻击时播放的声音事件。
- disabled_sound[2]:此物品被攻击禁用时播放的声音事件。
- block_delay_seconds:(值≥0,默认为
- blocks_attacks 物品堆叠组件
- 加入了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'
- 加入了tooltip_display组件,以隐藏由任何组件提供的提示框文本。
- 因此,show_in_tooltip字段、hide_additional_tooltip和hide_tooltip组件被取代。
- 此组件是每个物品类型的默认组件之一。
- 格式如下:
- tooltip_display 物品堆叠组件
- hide_tooltip:(默认为
false
)物品提示框是否总是隐藏。 - hidden_components:(默认为
[]
)一个物品组件ID列表,列表内的所有组件提供的提示框文本都会被隐藏。如果组件不提供提示框文本,则对其没有效果。- :一个物品堆叠组件ID。
- hide_tooltip:(默认为
- tooltip_display 物品堆叠组件
- 加入了
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:谓词指定的值。
- *predicate:组件谓词类型。可以为
- 通用变种选择器
- 具有生成规则的变种现在使用统一方法选择,过程如下:
- 每个变种字段spawn_conditions的每一表项包含一个条件和一个整数优先级
- 给定实体类型的所有变种的条件将根据生成实体的位置进行评估,然后游戏从剩余优先级最大的表项中随机选取一项
- 如果不存在任何条件,则变种保持默认值
- 格式如下:
- spawn_conditions:通用变种选择器。
-
- *priority:选中此条件的优先级。
- *condition:一项生成条件。
-
- spawn_conditions:通用变种选择器。
- 猫的变种可通过
data/<命名空间>/cat_variant/<id>.json
来添加。 - 青蛙的变种可通过
data/<命名空间>/frog_variant/<id>.json
来添加。 - 文件格式如下:
- 父标签
- *asset_id:此变种纹理资产的命名空间ID,会被解析为
assets/<命名空间>/textures/<路径>.png
。 - spawn_conditions:通用变种选择器。
- *asset_id:此变种纹理资产的命名空间ID,会被解析为
- 父标签
- 这两项特性均属于实验性功能。
- 粒子类型
tinted_leaves
现在具有新参数color
,可以为一个整数或一个4浮点数列表。
- 向
paletted_permutations
纹理图集源中加入了新字段:- separator:(默认为
_
)连接原始纹理和置换调色板以生成精灵图名称时使用的分隔符。
- separator:(默认为
更改[编辑 | 编辑源代码]
物品[编辑 | 编辑源代码]
- 现在其物品提示框中会显示装填的所有物品,而非只有首个物品。
- 其中装填的所有物品也会将它们的完整提示框以分段形式加入。
- 所有容器方块物品现在会像潜影盒一样在提示框中显示其中的前5个物品(若有)。
- 没有
map_id
组件的地图不再在其提示框中显示“未知地图”。- 无效ID仍会产生此提示。
- 现在其方块物品默认具有
block_state
组件。
非生物实体[编辑 | 编辑源代码]
- 移除了
potion
实体类型。现在代表喷溅药水和滞留药水的实体被拆分为splash_potion
和lingering_potion
。
游戏内容[编辑 | 编辑源代码]
命令格式[编辑 | 编辑源代码]
- SNBT现在接受异构列表,即接受不同类型元素的列表。
常规[编辑 | 编辑源代码]
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
组件。- 世界升级时,此组件将被tooltip_display组件取代,由此组件隐藏的组件提示框将加入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
- 世界升级时,此组件将被tooltip_display组件取代,由此组件隐藏的组件提示框将加入hidden_components列表中,这些组件包括:
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_tooltips
的toggles
映射表中现在支持任意组件ID。- 现在会在
tooltip_display
组件中切换所指定的组件。
- 现在会在
- 不再包含
template_item
和ingredient
字段。
angry_texture
、tame_texture
和wild_texture
现已合并到assets,且分别重命名为angry、tame和wild。- 加入了spawn_conditions字段,详见上文。
texture
和biome
字段现已分别被asset_id和spawn_conditions取代。
- batch现被重命名为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-279218 —
minecraft:enchant.thorns.hit
音效未在生物或玩家被荆棘魔咒杀死时播放。 - MC-279225 — 穿着皮革靴子的玩家落于细雪上时会抖动,且落点略高。
- MC-279232 — SNBT文本组件禁止列表中存在样式混合的文本。
- MC-279389 —
minecraft:entity.arrow.hit_player
音效在玩家被自己发射的箭击中的播放。 - MC-279454 —
hide_additional_tooltip
不再隐藏成书上的作者和程度。
- 上个开发版本的漏洞
- MC-279480 —
test_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-279573 —
test_instance_block.error.no_test
字符串缺少单词“no”。 - MC-279588 — 测试实例字段错拼为“sky_accesss”。
- MC-279599 —
/test pos
在Y和Z轴上偏移1格。 - MC-279601 —
test.error.expected_entity_at_pos
翻译缺失。