25w20a是Java版1.21.6
新内容
物品
- 音乐唱片
- 加入了新的音乐唱片“Tears”,作者是Amos Roddy。
- 当恶魂被玩家反弹的火球杀死后掉落。
- 稀有度为“少见”。
- 通过红石比较器输出的红石信号强度为10。
- 鞍
- 加入了合成配方:
-
- 此配方在物品栏中获得首个皮革时解锁。
游戏内容
- 音乐
- 在樱花树林、森林、沙漠、雪林、繁茂洞穴生物群系和主菜单中加入了5首新的音乐曲目,作者是Amos Roddy:
- Below and Above
- Broken Clocks
- Fireflies
- Lilypad
- O’s Piano
- 选项
- 在“音乐和声音选项”界面中加入了“Music Frequency”选项,控制音乐在世界中播放的间歇时间,默认为20分钟。
- 在“音乐和声音选项”界面中加入了“Show Music Toast”选项,控制音乐开始播放时及游戏暂停菜单中是否显示当前播放的音乐弹窗。
命令格式
/dialog
- 用于向客户端显示对话框的新命令。
- 语法:
dialog show <targets> <dialog>
- 向玩家显示对话框。
- 返回
targets
参数中玩家的数量。
dialog clear <targets>
- 清除玩家可见的对话框。
- 返回
targets
参数中玩家的数量。
- 参数:
<targets>
:玩家名称、UUID或玩家选择器。<dialog>
:dialog
注册表中的命名空间ID或内联对话框定义。
常规
- 数据包
- 加入了子文件夹
dialog
。
- 数据组件
- 在物品堆叠组件
equippable
中:- 加入了可选字段can_be_sheared,默认为
false
,True时允许玩家通过持剪刀右键目标实体以移除此物品。 - 加入了可选字段shearing_sound,需为一个声音事件,默认为
item.shears.snip
,控制此物品被剪下时所播放的音效。
- 加入了可选字段can_be_sheared,默认为
- 注册表
- 加入了固有注册表
DIALOG_BODY_TYPE
、DIALOG_TYPE
、INPUT_CONTROL_TYPE
和SUBMIT_METHOD_TYPE
。 - 加入了可写注册表
DIALOG
。
- 对话框
- 为玩家展示简单对话框的新方法。
- 对话框通常存储在
dialog
注册表中,但也可以内联定义。 - 目前是实验性功能。
- 为避免混淆对话框和游戏UI,自定义对话框标题部分会有一个警示标志。点击此警示标志后:
- 提示玩家此对话框为第三方提供。
- 提供强制退出世界的选项,避免玩家因进入无退出选项的对话框而陷入死循环。
- 服务端也可以在
play
和configuration
阶段展示对话框,但是configuration
阶段只接受内联定义。 - 对话框会在玩家作出选择后关闭。
- 默认情况下按下ESC也会尝试退出对话框。如果对话框设定了特殊的退出行为则也会执行此行为,是否可通过按下ESC退出对话框也可以配置。
- 对话框屏幕关闭后,玩家将进入上一个对话框或返回世界。
- 单人模式下打开对话框会暂停游戏。
- 对话框可以配置为在暂停菜单中进入,这拓展了之前添加的服务器链接
[需要测试]按钮。 - 大多数对话框都遵循下列通用布局:
- 页首,包括标题和警示标志
- 正文内容,取决于对话框类型
- 页脚,包括主按钮和提交按钮
- 对话框可以在数据包的
dialog
目录下定义。 - 由于对话框的各种形式会复用一部分标签,因此先行列出。
- 通用标签:
type
:对话框类型。title
:文本组件,对话框标题。external_title
:可选,文本组件,用于覆写展示此对话框的标题。body
:对话框主体,默认为空列表。can_close_with_escape
:是否可以通过按下ESC来退出对话框。
- 按钮通用标签:
label
:文本组件,按钮的文本。tooltip
:可选,文本组件,按钮高亮的提示文本。width
:按钮的宽度,默认为150。
- 通用标签:
- 点击动作
- 对话框中的这些元素被点击后会触发指定的事件。字段如下:
- 按钮通用标签
on_click
:点击后的点击事件。不指定时为关闭此对话框。
- 对话框中的这些元素被点击后会触发指定的事件。字段如下:
- 对话框类型
notice
- 一个页脚包含一个按钮的屏幕。
- 退出动作由
action
指定。 - 字段如下:
- 通用标签
action
:点击行为,默认为gui.ok
。
confirmation
- 页脚有两个按钮的屏幕。
- 退出行为由
no
指定。 - 字段如下:
- 通用标签
yes
:点击行为。no
:点击行为。
multi_action
- 一个可以滚动的列表。
- 页脚依旧提供退出的按钮。
- 未指定时,按钮文本为
gui.cancel
,点击行为为gui.back
。
- 未指定时,按钮文本为
- 退出动作由
on_cancel
指定。 - 字段如下:
- 通用标签
actions
:点击动作的非空列表。on_cancel
:点击事件。columns
:正整数,按钮的列数。默认为2。
server_links
- 一个可以滚动的列表,来源
minecraft:server_links
网络数据包。 - 页脚依旧提供退出的按钮。
- 行为与
multi_action
一致。
- 行为与
- 退出行为由
on_cancel
指定。 - 字段如下:
- 通用标签
on_cancel
:点击事件。columns
:正整数,按钮的列数。默认为2。button_width
:正整数,按钮的宽度,默认为150。
- 一个可以滚动的列表,来源
dialog_list
- 一个可以指向其他对话框的可滚动列表。
- 这些对话框使用
external_title
作为预览标题。
- 这些对话框使用
- 页脚依旧提供退出的按钮。
- 行为与
multi_action
一致。
- 行为与
- 退出行为由
on_cancel
指定。 - 字段如下:
- 通用标签
dialogs
:一个对话框,或对话框的列表(不可混用命名空间ID和内联定义形式),或一个对话框标签。on_cancel
:点击事件。columns
:正整数,按钮的列数。默认为2。button_width
:正整数,按钮的宽度,默认为150。
- 一个可以指向其他对话框的可滚动列表。
simple_input_form
- 允许玩家输入数据的屏幕。
- 页脚有一个提交按钮。
- 退出行为:无(屏幕关闭后会将输入数据发送到服务端)
- 字段如下:
- 通用标签
inputs
:非空的输入控制列表。action
:提交按钮。
multi_action_input_form
- 允许玩家输入数据的屏幕。
- 允许有多个提交按钮。
- 没有页脚部分。
- 退出动作:无(屏幕关闭后会将输入数据发送到服务端)
- 字段如下:
- 通用标签
inputs
:非空的输入控制列表。actions
:非空的提交按钮列表。
- 对话框主体类型
- 所有的对话框都可以定义对话框主体,对话框主体在页首之下。
- 共通字段如下:
type
:对话框主体类型。
plain_message
- 一个多行的信息。
- 字段如下:
contents
:文本组件。width
:信息的最大宽度,默认为200。
item
- 一个带描述的物品。
- 指定了
description
后就如同物品栏中的物品提示信息一样。
- 指定了
- 物品会向在物品栏中一样渲染。
- 物品本身不受
width
和height
影响。 - 字段如下:
item
:带数量的物品堆叠。description
:可以为文本组件,也可以为:contents
:文本组件。width
:内容的最大宽度,正整数,默认为200。
show_decorations
:如果为true
,则额外渲染物品数量、耐久度信息。默认为true
。show_tooltip
:如果为true
,则会渲染物品提示框。默认为true
。width
:内容元素的宽度,默认为16。height
:内容元素的高度,默认为16。
- 一个带描述的物品。
- 输入控制类型
- 输入控制允许玩家输入不同的数据。
- 当提交数据时,这些值会转换为字符串提交到服务端。
- 通用字段如下:
type
:输入控制类型。key
:一个标识符,只能为字母、数字或下划线。
text
.- 文本输入。
- 数据不经修改即发送。
- 字段如下:
width
:输入宽度,默认为200
。label
:文本组件,显示输入标题。label_visible
:输入是否可见,默认为true
。initial
:初始值,默认为空。
boolean
- 一个复选框,用以输入是或否。
- 字段如下:
label
:文本组件,渲染在复选框右侧。initial
:初始值。on_true
:勾选时的值。默认为true
。on_false
:不勾选时的值。默认为false
。
single_option
- 可以通过点击切换选项的输入框。
- 发送当前选定的值。
- 字段如下:
label
:文本组件,按钮上的文本。label_visible
:文本是否在按钮内。默认为true
。width
:按钮的宽度,默认为200
。options
:可选值,格式如下:id
:要发送的值。display
:覆写选项展示的值(不影响发送的值)。initial
:是否是初始值。此列表只能有一个初始值。- 也可以直接指定字符串,此时与只指定
id
等同。
number_range
- 一个可选滑块的输入。
- 发送当前值,但整数不会带小数点。
- 字段如下:
label
:文本组件,按钮的基础描述文本。label_format
:按钮的文本格式。第一个参数为label
,第二个为当前值。width
:按钮的宽度,默认为200
。start
:左侧的值。end
:右侧的值。steps
:正整数,决定此区间的有效值数。设置成1依旧有左右两侧的两个值。initial
:初始值,必须在区间里,默认为左侧的值。
- 提交行为
- 每个输入对话框都有一个提交按钮。
- 当点击按钮时,将收集所有输入的值,并使用下面描述的方法之一将其发送到服务端。
id
字段提交的值包含action
。- 提交行为字段:
- 按钮通用标签
id
:此提交行为的标识符。on_submit
:提交的动作。type
:提交方式类型。
- 注意:服务端不会在命令或负载到达前验证单个值。
- 提交方法类型
command_template
- 此方法会构建一个宏命令,并请求服务端运行。
- 与
run_command
点击行为一样,若命令的权限等级大于0,游戏会弹出确认屏幕。- 未被宏匹配的值会被忽略,无传入的宏参数会视为空。
- 字段如下:
template
:一个字符串,代表对应的宏。
custom_template
- 此方法会使用宏构建一个自定义的点击动作发送到服务端。
- 未被宏匹配的值会被忽略,无传入的宏参数会视为空。
- 字段如下:
template
:一个字符串,作为宏的负载。id
:命名空间ID。
- 此方法会使用宏构建一个自定义的点击动作发送到服务端。
custom_form
- 此方法会构建一个服务端的自定义点击动作,发送所有值,并请求服务端执行。
- 格式:
- 键与值使用
U+0009
分隔。 - 键值间的换行使用
U+000A
。 - 如果
U+0009
和U+000A
存在于任何键或值中,会被转化为\t
和\n
。
- 键与值使用
- 字段如下:
id
:命名空间ID。
- 文本组件
- 加入了点击事件
custom
。- 当玩家点击带有此样式的文本时,客户端会向服务端发送
minecraft:custom_click_action
专用数据包。 - 预期用途是作为修改过的服务端的
run_command
的替代品,这样就无需担心添加自定义的命令。 - 此数据包在原版服务端上没有任何作用。
- 当玩家点击带有此样式的文本时,客户端会向服务端发送
-
-
-
- id:命名空间ID。
- payload:可选的字符串负载。
-
-
- 加入了点击事件
show_dialog
。- 当玩家点击带有此样式的文本时,客户端会打开指定的对话框。
-
-
-
- dialog:要打开的对话框。
-
-
- Realms
- 在Realms加载屏幕中加入了Realms徽标。
- 在连接到Realms时加入了地区信息。
- 纹理
- 加入了
icon/music_notes
和toast/now_playing
UI精灵图。
- 标签
- 加入了空对话框标签
#pause_screen_additions
。
- 闪烁标语
- 加入了以下闪烁标语:
- Music by Aaron Cherof!
- Music by Kumi Tanioka!
- Music by Amos Roddy!
- Flint and Steel!
- Chicken Jockey!
更改
方块
- 失水恶魂
- 现在不会被水流破坏。
生物
- 马、骡、驴、骆驼、骷髅马、僵尸马、猪、炽足兽、羊驼和快乐恶魂
- 现在可以对其使用剪刀以剪下其所佩戴的鞍、马铠、挽具或地毯。
- 当这些实体正被骑乘,或玩家潜行使用剪刀时,上述行为不会发生。
- 带有剪刀的发射器不能从上述生物上移除相应的佩戴物。
- 恶魂
- 现在默认具有0.06飞行速度属性。
世界生成
- 战利品表
- 移除了以下结构战利品箱中的鞍,并以1 – 5个皮革代替:
- 地牢战利品箱
- 远古城市战利品箱
- 沙漠神殿战利品箱
- 丛林神庙战利品箱
- 要塞祭坛战利品箱
非生物实体
- 被激活的TNT
- 部分回退了对MC-3697的修复;现在,TNT在水中爆炸时再次会破坏物品实体和盔甲架,但仍不会破坏画和物品展示框等装饰性实体。
游戏内容
- 属性
- 现在飞行速度属性(
flying_speed
)影响恶魂和快乐恶魂的飞行速度。
- 音乐和声音
- 现在游戏暂停时,音乐也会播放。
- 迷雾
- 现在迷雾对3D平视显示器元素生效(如第一人称下玩家的手和手中的物品)。
- 降低了降雨和雷暴天气下的迷雾浓度。
- 现在天空光照<8(此前为15)时,雨雾浓度逐渐降低。
常规
- 全景图
- 更新了主菜单全景图以匹配2025夏季小更新。
- 数据包
- 将数据包版本号更改为
77
。
- 文本组件
- 现在聊天屏幕和成书屏幕中点击事件
run_command
指定的命令若无法解析或所需的权限等级大于0,则玩家点击文本后会出现一个确认屏幕。
- 资源包
- 将资源包版本号更改为
61
。
- 闪烁标语
- 移除了“Minors welcome!”。
- 将“Pumpa kungen!”闪烁标语改为“Pumpakungen!”。
- 将“10 years of Mining and Crafting!”闪烁标语改为“15 years of Mining and Crafting!”。
- 暂停屏幕
- 游戏现在会根据数据包和服务端的网络数据包判断是否展示自定义的对话框。
- 此对话框依旧使用
external_title
展示标题。 - 此功能由对话框标签
#pause_screen_additions
参与处理:- 如果未指定此标签或此标签为空,但服务端发送了
server_links
网络数据包,则显示server_links
。 - 如果标签有一个元素,则会替换“报告漏洞”按钮,显示此对话框按钮。
- 如果有多个元素,则按钮指向
custom_options
对话框,此对话框会调用标签依次显示对话框。
- 如果未指定此标签或此标签为空,但服务端发送了
修复
- 修复了15个漏洞
- 1.21前正式版的漏洞
- MC-97423 — 下马时,马暂时保持跳跃动画。
- MC-103511 — 调整音量后,声音或曲目停止播放。
- MC-118081 — 游戏在部分UI屏幕暂停时,声音不会暂停。
- MC-248682 — 活塞移动的半透明方块未被迷雾正常影响。
- MC-248688 — 半透明的下落的方块未被迷雾正常影响。
- MC-269744 — 使用层数较多的预设时会因内存溢出而崩溃。
- 1.21.1的漏洞
- MC-276665 — 菜单中更改音乐设置后,音乐永不打开。
- 1.21.3的漏洞
- MC-277991 — 苍白橡木船物品中的2个最亮的像素颜色仍然错换。
- 1.21.5的漏洞
- MC-296311 — 接触水的TNT会破坏方块并伤害实体,但会忽略装饰性实体。
- MC-297524 — 与Realm的链接产生奇怪的HTML文本。
- 1.21.6开发版本的漏洞
- MC-296836 — 快乐恶魂的鞍模型不会在拴绳因超过最大范围而断裂时变化。
- MC-296843 — 部分Mac系统上,云层渲染异常。
- 上个开发版本的漏洞
- MC-297535 — 第一人称视角或物品栏中的附魔光效不渲染。
- MC-297544 — 雨雾不影响第一人称视角下的手或物品。
- MC-297570 — 方块破坏遮罩不受环境迷雾影响。