- 注册
- 2023/11/22
- 消息
- 18
- 金粒
- 2,455金粒

Minecraft Java 版 1.20.3 现已发布。本次正式版将包含饰纹陶罐的新用途,蝙蝠的外观更新和盾牌机制的调整。
同时也包括对地图创作者和数据包作者有用的一些特性,例如计分板显示名称、/execute 与 /tick 命令的扩展以及全新的调试用 /tick 命令。
可选的实验性“1.21 更新”数据包也预先展示了下一个 Minecraft 主要版本将推出的部分玩法特性。
更改
- 饰纹陶罐现在可以储存物品,但会被弹射物破坏
- 现在玩家使用盾牌格挡时,持盾的手臂将在第三人称视角下跟随玩家的视角转动
- 蝙蝠有了全新的外观
- 向辅助功能菜单中添加可隐藏主菜单黄色闪烁文本的选项
- 为缺失数据的世界添加了恢复屏幕(例如那些因意外关闭而没能保存的世界)
- 其他微小调整
- 饰纹陶罐现可储存 1 组物品
- 漏斗、漏斗矿车可以从饰纹陶罐存取物品,投掷器可以向饰纹陶罐存入物品
- 红石比较器可以读取饰纹陶罐内物品的数量
- 玩家可通过与饰纹陶罐交互来存入物品
- 饰纹陶罐没有 GUI,需要被打破才能发现并取出内容物
- 玩家与饰纹陶罐的互动将导致饰纹陶罐晃动,并发出频率为 11 的振动
- 饰纹陶罐可被弹射物摧毁,并会因此变回碎片形式,同时会掉出内容物
- 饰纹陶罐的最大堆叠数现在为 64
蝙蝠
- 蝙蝠现在拥有全新的模型、动画与纹理
- 刷怪笼现在能显示其内部面
- 丢出的末影珍珠会在击中的位置发出声响
- 对遥测数据收集屏幕做出一些小调整



技术性更改
- 数据包版本现在为 26
- 资源包版本现在为 22
- 对聊天组件序列化做出一些微小更改
- 若非活体实体存在 CustomName 的 NBT 标签且正在被玩家看向,现在也可以显示出自定义名称,或者在设置了 CustomNameVisible 的情况下始终展示,这将与活体的行为相类似
- 调整了已下载/世界资源包处理的行为
聊天组件
序列化
- 纯文本聊天组件(只有文本内容,无并列的组件,无格式)先总会被序列化成为字符串,而不是 {"text': "blah"}
- 聊天组件在通过网络传输时将会在 NBT 的序列化形式下进行
- 聊天组件现允许有可选的 type 值(允许的值有:text, translatable、score、nbt、keybind)以提升解析与错误检查的速度
- id 字段若采用 show_entity hoverEvent 格式,可接受 4 个整型变量所构成数组形式的UUID
- translate 组件内的数值与 boolean 类型变量不再被转义成字符串
- 下列 JSON 文本表达式将不再可用:
- null
- []
- color
- clickEvent
- hoverEvent
- hoverEvent [action=show_entity].contents.name
- hoverEvent [action=show_item].contents.tag
世界资源包
对世界资源包(resources.zip),Realms资源包和由专用服务器控制的资源包做出更新。
UI
- 替换下载屏幕为一个弹窗
- 世界资源包的应用将与区块加载一同进行
本地存储
下载的资源包现在存储在 downloads 文件夹目录(相较于先前的 server-resource-packs 也有了不同的文件组织方式)
- 该文件夹目录的文件不再自动清理(之前最多只会保留10个资源包)
- 此外,出于调试目的,在此目录下还将生成名为 log.json 、用于存储下载文件信息的日志文件
服务端配置
已下载的资源包将可命名为独一无二的 id(GUID/UUID)以示区分
- 对于专用服务器使用的资源包,该值可由 server.properties 中的 resource-pack-id 配置
- 若缺失,则将根据 URL 生成
- 若未设置资源包哈希值,则每次应用资源包前都将会重新下载
- 之前只会应用最近一次下载的版本
网络包
向第三方服务端添加了一些额外的选项:
- 客户端现可同时接收多个服务器资源包
- 新包将会被加入到未启用的服务器资源包
- 资源包不再于进入配置阶段时被清理
数据包版本 19 更新内容
标签
- 新增 can_breathe_under_water 实体标签,拥有该标签的生物不会溺水
- 新增 can_break_armor_stands 伤害类型标签,拥有该标签的伤害类型能一击破坏盔甲架
数据包版本 20 更新内容
- 调整了 function 命令的输出
- 调整了 maxCommandChainLength 游戏规则的实际检查方式
- 新增游戏规则 maxCommandForkCount
- 重新加入 execute 命令的子命令格式 execute if function
- 重新加入 return 命令的子命令格式 return run
- 若饰纹陶罐的 cracked 方块状态为 true,则它会在被任何方式破坏时变回碎片形式
- 新增 dust_plume 粒子类型
命令
函数
- function 命令现已做出调整,以适配全新的 return 命令
- 函数将不再有输出值,除非函数内使用了 return 命令,或在查找与实例化(暂译,包括后文多处内容)过程中出现错误
- 这意味着 function 命令将不再返回(甚至显示)执行期间运行的命令数
- 错误情况:
- 调用了不存在的函数
- 调用了空的函数标签
- 宏函数实例化失败
- [处以及前后的“返回值”均指代可通过 execute store 进行储存的值
- 此前若函数被 execute store ... run function调用,则函数在运行每一条命令都会执行一次 store 子命令
- 这意味着单次 function 调用将会至多执行 store 子命令一次(在没有调用 return 的情况下是 0 次)
- 对于有多个函数的函数标签,函数返回值会被累计,在每一函数执行完毕时更新一次
限制
现有对函数的限制已被做出改进,从而适应全新的执行规则,同时为了预防更大范围的漏洞:
- 即使通过命令行执行的函数也将受到限制(现在会表现地与使用 function 时的行为完全相同)
- 举例说明,所有使用 execute as @e run function 调用的函数会共用同一个计数器
- 使用命令方块的执行行为仍会被单独考虑
- 为单个上下文(context)执行的命令
- execute 命令执行的单个阶段(无论有多少上下文被修改)
- 函数调用
- 举例说明:若当前世界存在 5 个实体,则 execute as @e 会创建 5 个上下文,而 execute as @e at @e 会创建 5 乘 5 共 25 个上下文
EXECUTE IF FUNCTION
全新的 execute 子命令,可运行函数或函数标签控制的一组函数,并匹配返回值。这一子命令在先前的版本中被移除,但现在被重新加入。若使用函数标签,则每一个函数都会被执行,与上一个返回值无关。
格式:execute if|unless function <function> <continuation>
参数:
- function:要运行的函数或函数标签
匹配值
所运行函数的输出值将按以下规则匹配:
- 要让匹配的结果为成功,则至少一个函数要成功运行
- 函数的成功调用必须满足:
- 使用了 return 命令来返回一个值
- 返回值不为 0
RETURN RUN
在 return 命令中现在可以使用 return run 的子命令格式。这一子命令在先前的版本中被移除,但现在被重新加入。
命令格式:return run <command>
该命令将会运行由 command 参数所指定的命令,并获取其输出的 result 值,然后作为函数的返回值输出。
- 若该命令没有返回值(例如使用 function 调用了函数,但函数内没有 return 命令), return 命令将不会被执行,但函数仍会继续执行
- 若命令执行失败,则返回值为 0
- 在其他情况下,它与 return 并无区别,也会有特定的返回值
- 如果命令存在分支情况(例如 return run execute as @e run <特定命令>),则只会按命令的第一次执行输出返回值
- 若命令没有被执行(例如 return run execute if @e [<不会被通过的选择器>] run <特定命令>) ,则函数不会有输出值,但仍会继续执行
数据包版本 21 更新内容
- 添加拼图池别名,可用于选择被替换的拼图池
- 在实体 tnt 中添加 block_state 字段,可用于替换渲染的方块模型
- 重命名 tnt 的 Fuse 字段为 fuse
- 添加 playersNetherPortalDefaultDelay 和 playersNetherPortalCreativeDelay 游戏规则来控制玩家在切换维度前需要在下界传送门内停留的时间(单位为刻)
- 添加游戏规则 projectilesCanBreakBlocks 来控制 #impact_projectiles 弹射物能否破坏包括紫颂花、饰纹陶罐和滴水石锥(通过三叉戟)在内的可被弹射物破坏的物品
- 添加 white_smoke 粒子类型
拼图池别名
- 向拼图结构里添加了可选的 pool_aliases 列表
- 拼图池别名代表可被替换的结构之间的联系,可以将拼图池重定向到另一结构实例
- 别名类型由 type指定,可以是:
- direct建立一个别名到一个新拼图池的 1:1 映射
- alias 要替换的拼图池别名
- target 替换后的拼图池
- random 建立一个别名到若干个新拼图池的 1:n 映射, n代表的结构实例将会随机指定
- alias 要替换的拼图池别名
- targets 一系列拼图池组成的随机列表,用来替换 alias
- random_group
- groups 每个组都是一个随机列表
- 对于每一个结构实例,只会在一个组里随机
- 这可以用于实现“若 X 拼图池被 X1替换,则 Y 也被 Y1替换”
- direct建立一个别名到一个新拼图池的 1:1 映射
数据包版本 22 更新内容
- 添加了 tick 命令
- 为拼图方块编辑界面中的选择优先级与放置优先级添加了两个新的输入字段
- 将 item 添加到 minecraft:arrow 与 minecraft:spectral_arrow, 这是将被拾起的物品
- 在 minecraft:trident 实体数据格式中将 Trident 重命名为 item
tick 命令
添加了一个新的 tick 命令。这是一个管理与调试命令,用于控制游戏刻并衡量游戏性能,只有管理员及以上权限级别才可使用该命令,因此该命令在命令方块与数据包中默认禁用
语法:
tick query —— 输出当前游戏刻及有关游戏刻性能的信息
tick rate <rate> —— 将目标游戏刻速率设定为制定值,该值必须大于1.0且小于10000.0,将游戏刻速率设置的过低将导致您的游戏无响应,而将游戏刻速率设置过高则将导致您的游戏崩溃。理论上游戏刻将永远滞后于设定值。请使用 tick query 或 <F3> + 2 (仅限集成服务端) 调试界面来测量游戏的性能并相应调整游戏刻率。设置低于20.0的默认目标游戏刻率也会导致玩家的运行速度变慢 (包括玩家的移动与控制输入),虽说设置高于20的游戏刻率仍会让玩家以每秒20刻的默认速度运行以保证游戏按预期相应,但这仍可能导致伪影现象出现。
tick freeze —— 冻结所有除玩家与玩家骑乘的任何实体外的所有游戏元素。这对调试与排查问题来说非常有用,并允许玩家可以自由移动着检查世界。
tick step <time> —— 仅在游戏刻被冻结时生效。它会将游戏运行制定游戏刻的时长后再次冻结游戏。这可以允许玩家在游戏中逐刻运行某些操作。
tick step stop —— 停止当前的逐刻运行进程并冻结游戏
tick unfreeze —— 解冻游戏并恢复所有游戏元素的运行
tick sprint <time> —— 运行游戏,并同时忽略指定数量的游戏刻目标速率(这意味着游戏将以尽可能快的速度运行)。在运行结束时,游戏将恢复到之前的游戏刻速率并显示运行时的性能信息。这对按时间测试的游戏元素(如红石机器)来说非常有用,也能允许玩家更快模拟沙盒环境中的生物行为
tick sprint stop —— 停止当前的冲刺运行并恢复之前的游戏刻目标速率
拼图方块的选择与放置优先级
- 选择优先级
- 当父级方块处理连接时可控制该拼图方块连接到其目标方块的顺序
- 拼图方块将按照优先级降序处理,同一优先级则将随机处理
- 当多个拼图方块连接到一起时可在更广的结构中处理该方块进行连接的顺序
- 每一部分都将按照优先级降序处理,同一优先级中则随机处理
- 所有现有拼图方块的默认放置优先级均为0,并引入与可配置值更改前相同的行为
数据包版本 23 更新内容
- 战利品表现可被用于饰纹陶罐并可被 LootTable 标签键正常读取
- 对函数命令进行了额外改动
命令
TICK
- tick step 命令中的 <time>参数现为可选参数。默认值为1
RETURN
- return run现在总会发送返回值
- 如果返回命令中没有有效结果(即 success=0 且 result=0),则包含 return run 的函数将执行失败
- return run 现在将同时传输成功次数与执行次数(之前的成功次数始终会被设定为 1)
- return run 的值现在允许被储存 - 这代表 execute store ... run return run some_command 将能存储它的值并将其退回至上级函数
- 添加了新的子命令 return fail 以使整个函数执行失败(即 success=0 且 result=0)
FUNCTION
- 如果通过function <function tag> 来运行多个含 return run 的函数 ,则该组函数会在任何函数首次运行 return 后终止
- 当使用return run 运行函数时对于 function的单次调用将始终具有返回值
- 举个例子, return run execute [split context] run function <some function with conditional return> 总会在处理完首个[context]后返回
EXECUTE IF|UNLESS FUNCTION
- execute if|unless function将不会在所有函数都不具有返回值时执行失败
- 如果被调用的函数中没有 returns , 则 if 将不被执行而 unless 将被放行
- 任何被调用函数中的首个 return 将产生返回值
数据包版本 24 更新内容
- 拼图结构的 size 最大值由 7 向上调整为 20
数据包版本 25 更新内容
- 记分板目标现可以有不同的展示名称
命令
SCOREBOARD
显示名称
- 记分板内的记分项现在可以有自定义的显示名称
- 对于记分板追踪的每一实体、每一记分项,显示名称都可以是相互独立的
- 若未指定,则记分项名称仍会显示成当前追踪的实体(即先前的行为)
- 实体分数被重置或实体不再被追踪时,显示名称将被清除
- 队伍颜色仍会生效
- 子命令用于控制显示名称:
- scoreboard players display name <目标> <记分项> <文本组件> - 设置显示名称
- scoreboard players display name <目标> <记分项> - 清除显示名称
显示名称自动更新
- 为更便捷的管理显示名称,记分项可被设置为每当分数更新时自动更新显示名称
- 该选项默认被禁用
- 如记分项当前无法设置显示名称(例如实体未被加载)则当前显示名称会被保留【该句存疑】
- 用于设置记分项自动更新的命令格式如下:
- scoreboard objectives modify <记分板> displayautoupdate [true|false]
格式化数字
- 数字形式的分数现可以设置样式
- 样式可设置为对整个记分项生效,或对单个实体的分数生效
- 设置了样式的分数在各个显示位置(侧边栏、玩家名称下方等)渲染出的效果是相同的
- 用于设置分数样式的子命令格式如下
- scoreboard objectives modify <记分项> numberformat <样式> - 设置记分项分数的默认样式
- scoreboard objectives modify <记分项> numberformat - 清除记分项分数的默认样式
- scoreboard players display numberformat <目标> <记分项分数> <样式> - 设置单个记分项分数的样式
- scoreboard players display numberformat <目标> <记分项分数> - 清除单个记分项分数的样式
<样式>参数允许值:
- styled <样式> - 分数将显示为当前设置的样式(例: {"bold":true})
- fixed <文本组件> - 分数会被替换成文本
- blank - 分数将不被展示
数据包版本 26 更新内容
- 将 minecraft:grass 物品和方块重命名为 minecraft:short_grass
资源包版本 19 更新内容
- 添加 crafter 的方块模型、物品模型和方块状态定义
- 添加 crafter 的容器 GUI 纹理和精灵图
- 添加 white_smoke 粒子定义
资源包版本 20 更新内容
- bat.png 已按全新的蝙蝠模型更新
- 为下列方块添加了模型、物品栏模型与方块自定义状态:
- chiseled_copper, exposed_chiseled_copper, weathered_chiseled_copper, oxidized_chiseled_copper
- copper_grate, expxosed_copper_grate, weathered_copper_grate, oxidized_copper_grate
- copper_bulb, exposed_copper_bulb, weathered_copper_bulb, oxidized_copper_bulb
- copper_door, exposed_copper_door, weathered_copper_door, oxidized_copper_door
- copper_trapdoor, exposed_copper_trapdoor, weathered_copper_trapdoor, oxidized_copper_trapdoor
- tuff_stairs
- tuff_slab
- tuff_wall
- chiseled_tuff
- polished_tuff
- polished_tuff_stairs
- polished_tuff_slab
- polished_tuff_wall
- tuff_bricks
- tuff_brick_stairs
- tuff_brick_slab
- tuff_brick_wall
- chiseled_tuff_bricks
- chiseled_copper, exposed_chiseled_copper, weathered_chiseled_copper, oxidized_chiseled_copper
- copper_grate, expxosed_copper_grate, weathered_copper_grate, oxidized_copper_grate
- copper_bulb, exposed_copper_bulb, weathered_copper_bulb, oxidized_copper_bulb
- copper_door, exposed_copper_door, weathered_copper_door, oxidized_copper_door
- copper_trapdoor, exposed_copper_trapdoor, weathered_copper_trapdoor, oxidized_copper_trapdoor
- chiseled_tuff
- polished_tuff
- tuff_bricks
- chiseled_tuff_bricks
资源包版本 21 更新内容
- The uniform font has been updated to use Unifont 15.1.04 (from 15.0.06)
- The only supported texture format is now .png
旋风人
- 为实验性的旋风人加入了相关的实体模型与纹理:
- breeze, wind_charge
- breeze_wind
资源包版本 22 更新内容
- 将 minecraft:grass 方块与物品重命名为 minecraft:short_grass



实验性特性
合成器
- 合成器是一种全新的方块,可通过红石信号来合成物品或方块
- 当接收到单个红石信号脉冲时,合成器将进行一次合成并弹出合成后的物品(持续的信号不能使它连续工作)
- 当接收到这个信号时,合成器会从前面弹出按配方合成的结果
- 如果输出结果含有多种类型的物品,则所有物品会被一同弹出(例如在合成蛋糕后空桶也会被弹出)
- 合成器可在摆放时朝向任意方向
合成器 UI
- 合成器拥有 3x3 且互动的合成窗格
- 合成器的合成窗格都是可调整的,玩家可通过在 GUI 空手单击来调整单个格子的行为
- 被“禁用”的格子不再能放置物品,也不会从其它方块(漏斗和投掷器)接收物品
- 不同于工作台,合成器所展示的合成后物品只会在接受到下一个红石脉冲时被合成且弹出,而不能直接被玩家拿取
- 对所有与合成器互动的玩家来说,合成器的 UI 是同步的,这意味着多名玩家可对合成器同时操作,就像箱子和漏斗那样
与其它方块互动
- 比较器可以输出 0-9 的信号,每一个非空或禁用的格子都会增加 1 格红石信号强度
- 漏斗既可输入也可排出物品
- 投掷器可向合成器输入物品
- 物品通过其它方块(例:漏斗、投掷器)进入时将按如下的规则填充:
- 优先放入第一个空的格子里(从左到右从上到下)
- 如果没有空的格子则优先放入同一物品堆叠数最少的格子(若有多个符合条件则取第一个)
- 若格子被禁用则会被跳过。物品随后会进入容器里
- 若物品无法移动,则会被弹出到世界里
铜方块系列
- 增加了若干种铜质方块,包括:
- 雕纹铜块
- 铜格栅
- 铜灯
- 铜门
- 铜活板门
- 上述所有方块的氧化与上蜡变种
雕纹铜块
- 使用 2 个相同氧化程度的切制铜台阶合成
- 也可使用切石机进行合成
铜格栅
- 全新的铜质装饰类方块
- 使用 4 个相同氧化程度的铜块进行合成
- 也可使用切石机进行合成
- 透明且允许光线通过
- 生物不会在该方块中窒息
- 无法传导红石信号
- 其上方不会自然生成敌对生物
铜灯
- 可以通过红石脉冲改变发光状态的光源方块
- 和其他铜质方块一样,铜灯也会氧化,其亮度随氧化程度增加而变暗
- 铜灯:亮度等级 15
- 斑驳的铜灯:亮度等级 12
- 锈蚀的铜灯:亮度等级 8
- 氧化的铜灯:亮度等级 4
- 铜灯未被激活时,若接收到一个红石脉冲,则它将开启或关闭
- 此时即使移除了红石信号,铜灯也将继续保持当前的状态,直到接收了下一个红石脉冲
- 开启的铜灯能使比较器输出 15 等级的信号
- 其本身无法传导红石信号
- 使用下列物品可合成 4 个铜灯
- 3 个相同氧化程度的铜块
- 1 个烈焰棒
- 1 个红石粉
铜门与铜活板门
- 铜门与铜活板门会随时间推移而氧化,也可被涂蜡
- 类似木门,可通过右击或红石信号将其开启或关闭
- 可使用相同氧化程度的铜块合成
凝灰岩方块系列
- 新增了凝灰岩系列方块, 其包含:
- 包含楼梯、台阶、墙体与其雕纹变种
- 凝灰岩砖块与其楼梯、台阶、墙体与其雕纹变种
- 磨制凝灰岩与其楼梯、台阶、墙体变种
新增旋风人生物
- 旋风人是一种淘气的敌对生物,可通过试炼厅特定房间的试炼刷怪笼生成
- 旋风人主要通过跳跃的方式移动,有时会跳得非常远
- 旋风人是一种好斗的敌对生物,会使用迅猛的风弹攻击它们的对手
- 风弹与实体碰撞时会破裂,造成少量伤害
- 当与实体或方块碰撞后,风弹将产生一次风爆,并能击退一定范围里的所有实体
- 风爆还会让特定方块产生类似被“激活”的效果,具体有:
- 除铁质的门和活板门状态会被翻转
- 栅栏门状态会被翻转
- 按钮会被按下
- 拉杆状态会被翻转
- 铃铛会摇动并发出声响
- 点燃的蜡烛(无论是单独放置的还是插在蛋糕上的)会熄灭
试炼刷怪笼
- 试炼刷怪笼是一种全新的刷怪笼,能依据玩家多寡调整挑战等级并以此决定最终奖励的多寡
- 挑战等级将随周围玩家的数量增加而增加
- 挑战等级不会下降,除非试炼刷怪笼进入冷却阶段
- 生成的生物只会在自身位置可视的方块处出现
- 生成生物时无视该生物所需要的亮度
- 生成的生物不会自然消失
- 在所有奖励弹出后,试炼刷怪笼会进入30分钟冷却,在此期间将不再生成新的生物
- 试炼刷怪笼的挖掘速度非常慢,且具有较强的爆炸抗性,即便使用精准采集的工具挖掘也不会掉落
- 创造模式下的试炼刷怪笼默认没有刷出生物类型
- 可使用刷怪蛋改变它刷出生物的类型
试炼厅
- 试炼厅是一种在主世界新增的结构,玩家可以在游戏中期前往进行探索与挑战
- 试炼厅主要由多种类型的铜质方块和凝灰岩质方块构成,它们的体积也会有所差异
- 试炼厅更容易在地下的深板岩层出现
- 补给箱会在一些房间当中轻易找到,可在里面找到一些有助于完成试炼的方块与物品
- 奖励箱则需要完成房间内挑战才能解锁,可通过其获得大量高等级的附魔书与附魔装备
- 奖励箱内的战利品尚在调整中,并非最终版本
- 近战型
- 僵尸
- 尸壳
- 史莱姆
- 蜘蛛
- 洞穴蜘蛛
- 幼年僵尸
- 蠹虫
- 骷髅
- 流浪者
- 带有剧毒之箭的骷髅
- 例如,某一个试炼厅会只会生成僵尸、洞穴蜘蛛和流浪者、而另外一个试炼厅只会生成史莱姆、蠹虫和骷髅
- 例外项是,特定房间的一些试炼刷怪笼始终会刷出旋风人
已知问题
- 长廊生成时偶尔会出现死胡同
- 试炼厅中有时会错误生成含水层、繁茂洞穴和幽匿脉络
试炼厅
- 只能从试炼刷怪笼获得的一种物品
- 该物品尚不具有任何作用
1.20.3 修复的漏洞
本次正式版发布前共修复了约 85 个漏洞,可在漏洞追踪器上查看。
【震天 译自官网 2023 年 12 月 05 日发布的 Minecraft Java Edition 1.20.3;原作者 Java Team】
【本文排版借助了:SPXX v2.4.14】