Minecraft Java 1.20.3 Released Minecraft Java 版 1.20.3 已发布
We're now releasing 1.20.3 for Minecraft: Java Edition. This release comes with new functionality for Decorated Pots, a new look for the Bat and improvements to Shields.
Minecraft Java 版 1.20.3 现已发布。本次正式版将包含饰纹陶罐的新用途,蝙蝠的外观更新和盾牌机制的调整。
This release also includes new features for map makers and pack creators like Scoreboard Display Names and extensions for the execute and return commands and a new administrative tool: the tick command.
同时也包括对地图创作者和数据包作者有用的一些特性,例如计分板显示名称、/execute 与 /tick 命令的扩展以及全新的调试用 /tick 命令。
The optional Update 1.21 Experiment also shows up in this version as a sneak preview of features for the next major version of Minecraft.
可选的实验性“1.21 更新”数据包也预先展示了下一个 Minecraft 主要版本将推出的部分玩法特性。
CHANGES 更改
Decorated Pots can now store items, and can be smashed by projectiles
饰纹陶罐现在可以储存物品,但会被弹射物破坏
When a player is blocking with a shield, the arm with the shield now follows the direction the player is looking at, when viewed from third person perspective
现在玩家使用盾牌格挡时,持盾的手臂将在第三人称视角下跟随玩家的视角转动
The Bat now has a new look
蝙蝠有了全新的外观
Added an accessibility option that allows to hide the yellow splash texts in the main menu
向辅助功能菜单中添加可隐藏主菜单黄色闪烁文本的选项
Added a recovery screen for worlds with missing data (for example, if saving failed due to an unexpected shutdown)
为缺失数据的世界添加了恢复屏幕(例如那些因意外关闭而没能保存的世界)
Other minor tweaks
其他微小调整
DECORATED POTS 饰纹陶罐
Decorated Pots now store up to a single stack of items
饰纹陶罐现可储存 1 组物品
Hoppers, Hopper Minecarts and Droppers can now insert and/or extract items from Decorated Pots
漏斗、漏斗矿车可以从饰纹陶罐存取物品,投掷器可以向饰纹陶罐存入物品
Comparators can now read the number of items in Decorated Pots
红石比较器可以读取饰纹陶罐内物品的数量
Players can interact with Decorated Pots to insert items into them
玩家可通过与饰纹陶罐交互来存入物品
Decorated Pots have no GUI, and need to be broken to retrieve or discover their content by players
饰纹陶罐没有 GUI,需要被打破才能发现并取出内容物
Player interactions with Decorated Pots cause the Decorated Pot to wobble and trigger the vibration frequency of 11
玩家与饰纹陶罐的互动将导致饰纹陶罐晃动,并发出频率为 11 的振动
Decorated Pots can be smashed by projectiles which cause them to shatter and drop their content
饰纹陶罐可被弹射物摧毁,并会因此变回碎片形式,同时会掉出内容物
Decorated Pots now stack up to 64
饰纹陶罐的最大堆叠数现在为 64
BAT 蝙蝠
The Bat has an updated model, animations and texture
蝙蝠现在拥有全新的模型、动画与纹理
MINOR TWEAKS 小调整
Monster Spawner now renders their inner faces when looking inside
刷怪笼现在能显示其内部面
Thrown Ender Pearls produce a teleportation sound on impact
丢出的末影珍珠会在击中的位置发出声响
Small tweaks to the Telemetry Data Collection screen
对遥测数据收集屏幕做出一些小调整
TECHNICAL CHANGES 技术性更改
The Data Pack version is now 26
数据包版本现在为 26
The Resource Pack version is now 22
资源包版本现在为 22
A few minor changes to chat component serialization
对聊天组件序列化做出一些微小更改
The name of non-living entities will now be shown if looked at and a CustomName is set, or always displayed if CustomNameVisible is set, similar to living entities
Chat components now serialize to NBT when sent over network
聊天组件在通过网络传输时将会在 NBT 的序列化形式下进行
Chat components now have an optional type value (allowed values: text, translatable, score, nbt, keybind) to speed up parsing and improve error checking
聊天组件现允许有可选的 type 值(允许的值有:text, translatable、score、nbt、keybind)以提升解析与错误检查的速度
id field in show_entityhoverEvent style now also accepts UUID as an array of 4 ints
id 字段若采用 show_entityhoverEvent 格式,可接受 4 个整型变量所构成数组形式的UUID
Numeric and boolean arguments for translate component are no longer converted to string
translate 组件内的数值与 boolean 类型变量不再被转义成字符串
The following JSON component representations are no longer accepted:
下列 JSON 文本表达式将不再可用:
null
[]
Errors in following style fields are no longer silently ignored:
以下类型字段中出现错误将不再被静默忽略:
color
clickEvent
hoverEvent
hoverEvent [action=show_entity].contents.name
hoverEvent [action=show_item].contents.tag
WORLD RESOURCE PACKS 世界资源包
Changes apply to world resource packs (resources.zip), Realms resource packs and resource packs controlled by dedicated servers.
对世界资源包(resources.zip),Realms资源包和由专用服务器控制的资源包做出更新。
UI UI
Download screen has been replaced with a toast
替换下载屏幕为一个弹窗
World resource pack application will start together with chunk loading
世界资源包的应用将与区块加载一同进行
LOCAL STORAGE 本地存储
Downloaded packs are now stored in downloads directory (with different file organization than old server-resource-packs)
下载的资源包现在存储在 downloads 文件夹目录(相较于先前的 server-resource-packs 也有了不同的文件组织方式)
Files in this directory are no longer automatically cleaned (previously only up 10 packs were kept)
该文件夹目录的文件不再自动清理(之前最多只会保留10个资源包)
Additionally, inside this directory there is also log file log.json that stores information about downloaded files for debug purposes
此外,出于调试目的,在此目录下还将生成名为 log.json 、用于存储下载文件信息的日志文件
SERVER CONFIG 服务端配置
Downloaded packs now have unique id (GUID/UUID) that can be used to differentiate them
已下载的资源包将可命名为独一无二的 id(GUID/UUID)以示区分
This value for dedicated server pack can be configured with resource-pack-id option in server.properties
That means function command will no longer return (or even display) number of commands run during execution
这意味着 function 命令将不再返回(甚至显示)执行期间运行的命令数
Error conditions:
错误情况:
Calling non-existent function
调用了不存在的函数
Calling empty function tag
调用了空的函数标签
Macro instantiation failure
宏函数实例化失败
"Result" in this context means values that would be stored with execute store
在本文此处以及前后的“返回值”均指代可通过 execute store 进行储存的值
The previous behavior where every command in function would perform store if a function was called with execute store ... run function is removed
此前若函数被 execute store ... run function 调用,则函数在运行每一条命令都会执行一次 store 子命令
That means that a single call to function will store at most once (zero times if return was not called)
这意味着单次 function 调用将会至多执行 store 子命令一次(在没有调用 return 的情况下是 0 次)
For function tags with multiple entries, function results will be accumulated, but partial results will be stored at the end of every function
对于有多个函数的函数标签,函数返回值会被累计,在每一函数执行完毕时更新一次
Limits
限制 Existing limits for functions have been refined to accomodate new execution rules and prevent wider range of exploits:
现有对函数的限制已被做出改进,从而适应全新的执行规则,同时为了预防更大范围的漏洞:
Limits apply even if run from command line (so it will now always behave as if they were placed in a function)
即使通过命令行执行的函数也将受到限制(现在会表现地与使用 function 时的行为完全相同)
For example, all functions called by execute as @e run function will count towards same limit
举例说明,所有使用 execute as @e run function 调用的函数会共用同一个计数器
Executions from command blocks still count as separate ones
使用命令方块的执行行为仍会被单独考虑
Limit maxCommandChainLength for functions will now count "operations" like:
对函数的 maxCommandChainLength 限制也会对以下类型的“操作”进行计数:
execution of command for a single context
为单个上下文(context)执行的命令
execution of a stage in execute (no matter how many contexts were modified)
execute 命令执行的单个阶段(无论有多少上下文被修改)
invocation of function
函数调用
New limit with game rule maxCommandForkCount now restricts total amount of context that can be created by single state of functions like execute
Example: if there are 5 entities in world, execute as @e creates 5 contexts, while execute as @e at @e creates 5*5 = 25 contexts
举例说明:若当前世界存在 5 个实体,则 execute as @e 会创建 5 个上下文,而 execute as @e at @e 会创建 5 乘 5 共 25 个上下文
EXECUTE IF FUNCTION EXECUTE IF FUNCTION
An execute sub-command that runs a function or function tag and matches the return value(s).This is a reintroduction of functionality removed in previous version.If a tag is given, all functions run regardless of the results of prior functions.
全新的 execute 子命令,可运行函数或函数标签控制的一组函数,并匹配返回值。这一子命令在先前的版本中被移除,但现在被重新加入。若使用函数标签,则每一个函数都会被执行,与上一个返回值无关。
Syntax:execute if|unless function <function> <continuation>
格式:execute if|unless function <function> <continuation>
Parameters:
参数:
function: The function or tag to run
function:要运行的函数或函数标签
Matching
匹配值
The matching of the result value of the function(s) that run:
所运行函数的输出值将按以下规则匹配:
At least one of the functions must succeed for the match to succeed
要让匹配的结果为成功,则至少一个函数要成功运行
A succeessful call is defined as a function that:
函数的成功调用必须满足:
Uses the return command to return a value
使用了 return 命令来返回一个值
The return value is not 0
返回值不为 0
If no functions exited with return, neither if or unless will run
若没有函数使用了 return,则 if 或 unless 都不会通过
RETURN RUN RETURN RUN
A form of the return command is now available, return run .This is a reintroduction of functionality removed in previous version.
在 return 命令中现在可以使用 return run 的子命令格式。这一子命令在先前的版本中被移除,但现在被重新加入。
Syntax:return run <command>
命令格式:return run <command>
This takes the result value from running the specified command and returns that as the return value of the function.
该命令将会运行由 command 参数所指定的命令,并获取其输出的 result 值,然后作为函数的返回值输出。
If command did not return any value (like, for example, call to a function without return), return will not execute and function will continue execution
若该命令没有返回值(例如使用 function 调用了函数,但函数内没有 return 命令), return 命令将不会被执行,但函数仍会继续执行
If the given command fails, the return value is 0
若命令执行失败,则返回值为 0
In all other aspects, it works like return with a specified return value
在其他情况下,它与 return 并无区别,也会有特定的返回值
In case of fork (for example return run execute as @e run some_command) the first execution of the command will return
如果命令存在分支情况(例如 return run execute as @e run <特定命令>),则只会按命令的第一次执行输出返回值
If there are no executions (for example in return run execute if @e [something_impossible] run some_command) function will not return and will continue execution
若命令没有被执行(例如 return run execute if @e [<不会被通过的选择器>] run <特定命令>) ,则函数不会有输出值,但仍会继续执行
DATA PACK VERSION 21 数据包版本 21 更新内容
Introduced Jigsaw structure pool aliases, which can be used to rewire pool selection
添加拼图池别名,可用于选择被替换的拼图池
Added field block_state to tnt entity to allow replacement of rendered block model
在实体 tnt 中添加 block_state 字段,可用于替换渲染的方块模型
Renamed field Fuse to fuse on tnt entity
重命名 tnt 的 Fuse 字段为 fuse
Added playersNetherPortalDefaultDelay and playersNetherPortalCreativeDelay gamerules to control time (in ticks) that a player needs to stand in a Nether portal before changing dimensions
Added new gamerule projectilesCanBreakBlocks to control whether impact projectiles will destroy blocks that are destructible by them, i.e. Chorus Flowers, Pointed Dripstone and Decorated Pots
Added a new tick command. This is an adminstative and debugging command that allowsto control the ticking flow and measure the performance of the game.The command requires elevated permissions (admins and above) and so it is not by default available in command blocks and datapacks.
添加了一个新的 tick 命令。这是一个管理与调试命令,用于控制游戏刻并衡量游戏性能,只有管理员及以上权限级别才可使用该命令,因此该命令在命令方块与数据包中默认禁用
Syntax:
语法:
tick query - outputs the current target ticking rate, with information about the tick times performance. tick query —— 输出当前游戏刻及有关游戏刻性能的信息
tick rate <rate> - sets a custom target ticking rate to the specified value. The value must be greater than 1.0and lower than 10000.0. Setting a very low tick rate can cause the game to feel unresponsive andsetting too high tick rate for your system can causethe game to crash as the game now assumes, it is constantly falling behind the ticking target. Please use tick query or <F3> + 2 (Integrated server only) debug screen to measure the performance of the game and adjust the tick rate accordingly.Setting a tick target lower than the default 20.0 will also cause the players to be simulatedat a lower rate (including player movement and input controls), whilesetting a higher tick rate will cause the players to be simulated at the default rate of 20 ticks per second to maintainthe expected responsiveness of the game, but can cause artifacts in entities interpolation. tick rate <rate> —— 将目标游戏刻速率设定为制定值,该值必须大于1.0且小于10000.0,将游戏刻速率设置的过低将导致您的游戏无响应,而将游戏刻速率设置过高则将导致您的游戏崩溃。理论上游戏刻将永远滞后于设定值。请使用 tick query 或 <F3> + 2 (仅限集成服务端) 调试界面来测量游戏的性能并相应调整游戏刻率。设置低于20.0的默认目标游戏刻率也会导致玩家的运行速度变慢 (包括玩家的移动与控制输入),虽说设置高于20的游戏刻率仍会让玩家以每秒20刻的默认速度运行以保证游戏按预期相应,但这仍可能导致伪影现象出现。
tick freeze - freezes all gameplay elements, except for players and any entity a player is riding.This is useful for debugging and isolating issues with the game allowing the player to move around freely and inspect the world. tick freeze —— 冻结所有除玩家与玩家骑乘的任何实体外的所有游戏元素。这对调试与排查问题来说非常有用,并允许玩家可以自由移动着检查世界。
tick step <time> - Only works when the game is frozen. It runs the game for the specified number of ticks and then freezes the game again.This allows to step through the game a set amount of ticks at a time. tick step <time> —— 仅在游戏刻被冻结时生效。它会将游戏运行制定游戏刻的时长后再次冻结游戏。这可以允许玩家在游戏中逐刻运行某些操作。
tick step stop - stops the current stepping process, and re-freezes the game. tick step stop —— 停止当前的逐刻运行进程并冻结游戏
tick unfreeze - unfreezes the game and resumes all gameplay elements. tick unfreeze —— 解冻游戏并恢复所有游戏元素的运行
tick sprint <time> - runs the game while ignoring the set ticking target rate (meaning that the game will runas fast as possible) for the specified number of ticks. At the end of the sprint, the game will resumethe previous ticking target and display performance information about the tick times while sprinting. It is especially useful for testing gameplay elements that are time dependent, such as redstone contraptions,or mob behaviour in isolated environments that allow for much faster simulation. tick sprint <time> —— 运行游戏,并同时忽略指定数量的游戏刻目标速率(这意味着游戏将以尽可能快的速度运行)。在运行结束时,游戏将恢复到之前的游戏刻速率并显示运行时的性能信息。这对按时间测试的游戏元素(如红石机器)来说非常有用,也能允许玩家更快模拟沙盒环境中的生物行为
tick sprint stop - stops the current tick sprint, and resumes the previous ticking target. tick sprint stop —— 停止当前的冲刺运行并恢复之前的游戏刻目标速率
When the parent piece is being processed for connections, this controls the order in which this Jigsaw block attempts to connect to its target piece
当父级方块处理连接时可控制该拼图方块连接到其目标方块的顺序
Jigsaws will be processed in descending priority order and randomly within the same priority
拼图方块将按照优先级降序处理,同一优先级则将随机处理
Placement Priority
放置优先级
When this Jigsaw block connects to a piece, this is the order in which that piece is processed for connections in the wider structure
当多个拼图方块连接到一起时可在更广的结构中处理该方块进行连接的顺序
Pieces will be processed in descending priority order with the default insertion order breaking ties within the same priority
每一部分都将按照优先级降序处理,同一优先级中则随机处理
This functionality has been added to support the ability for Jigsaw structures to generate branches in a depth-first order, as well as give finer control over ordering of connections
这一功能旨在支持拼图结构按顺序生成分支的能力以更精准的控制连接顺序
All existing Jigsaw blocks will default their Selection and Placement Priority to 0, resulting in the same behaviour as before these two configurable values were introduced
所有现有拼图方块的默认放置优先级均为0,并引入与可配置值更改前相同的行为
DATA PACK VERSION 23 数据包版本 23 更新内容
Decorated Pots can now utilize loot tables and will read from the LootTable tag key
战利品表现可被用于饰纹陶罐并可被 LootTable 标签键正常读取
Additional changes to command functions
对函数命令进行了额外改动
COMMANDS 命令
TICK TICK
The <time> parameter in the tick step command is now optional. The default value is 1
tick step 命令中的 <time>参数现为可选参数。默认值为1
RETURN RETURN
return run will now always return
return run 现在总会发送返回值
If there are no valid results from returned command, function containing return run will fail (i.e. success=0 and result=0)
如果返回命令中没有有效结果(即 success=0 且 result=0),则包含 return run 的函数将执行失败
return run will now propagate success value together with results value (previously it always set success to 1)
return run 现在将同时传输成功次数与执行次数(之前的成功次数始终会被设定为 1)
return run now also allows storing values - that means execute store ... run return run some_command will both store value and return it outside function
return run 的值现在允许被储存 - 这代表 execute store ... run return run some_command 将能存储它的值并将其退回至上级函数
New subcommand return fail is added to make whole function fail (i.e. return success=0 and result=0)
If function <function tag> runs multiple functions in combination with return run, execution will stop after first return in any of the functions
如果通过function <function tag> 来运行多个含 return run 的函数 ,则该组函数会在任何函数首次运行 return 后终止
A single call to the function command will always have return when run with return run
当使用return run 运行函数时对于 function 的单次调用将始终具有返回值
For example, return run execute [split context] run function <some function with conditional return> will always return after processing the first context
举个例子, return run execute [split context] run function <some function with conditional return> 总会在处理完首个[context]后返回
EXECUTE IF|UNLESS FUNCTION EXECUTE IF|UNLESS FUNCTION
execute if|unless function will no longer always fail if all functions had no return
execute if|unless function 将不会在所有函数都不具有返回值时执行失败
If there were no returns in called functions, if will fail and unless will pass
如果被调用的函数中没有 returns , 则 if 将不被执行而 unless 将被放行
First return in any of called functions will return (for a single context)
任何被调用函数中的首个 return 将产生返回值
DATA PACK VERSION 24 数据包版本 24 更新内容
Increased maximum value of Jigsaw structure variable size from 7 to 20
拼图结构的 size 最大值由 7 向上调整为 20
DATA PACK VERSION 25 数据包版本 25 更新内容
Added individual display names for scoreboard entries
记分板目标现可以有不同的展示名称
COMMANDS 命令
SCOREBOARD SCOREBOARD
Display names
显示名称
Each entry in a scoreboard can now have a custom display name
记分板内的记分项现在可以有自定义的显示名称
Those values are kept separate per objective and score holder
对于记分板追踪的每一实体、每一记分项,显示名称都可以是相互独立的
If the name is not present, the score holder name is used (i.e. the old behavior)
若未指定,则记分项名称仍会显示成当前追踪的实体(即先前的行为)
If the score is reset or the whole objective is removed, the name is not preserved
实体分数被重置或实体不再被追踪时,显示名称将被清除
Team decorations will still be applied to names as normal
队伍颜色仍会生效
Subcommands for managing names:
子命令用于控制显示名称:
scoreboard players display name <targets> <objective> <text component> - set display name
scoreboard players display name <目标> <记分项> <文本组件> - 设置显示名称
scoreboard players display name <targets> <objective> - clear display name
scoreboard players display name <目标> <记分项> - 清除显示名称
Display name auto-update
显示名称自动更新
To make display name management easier, objectives can also be configured to auto-update display names on every score update
为更便捷的管理显示名称,记分项可被设置为每当分数更新时自动更新显示名称
This option is disabled by default
该选项默认被禁用
If a score holder has no display name (because it can't be attributed to any currently loaded entity), the current name is preserved
The uniform font has been updated to use Unifont 15.1.04 (from 15.0.06)
The uniform font has been updated to use Unifont 15.1.04 (from 15.0.06)
The only supported texture format is now .png
The only supported texture format is now .png
BREEZE MOB 旋风人
Added entity models and textures for experimental Breeze mob:
为实验性的旋风人加入了相关的实体模型与纹理:
breeze, wind_charge
breeze, wind_charge
Added shader:
新增着色器:
breeze_wind
breeze_wind
RESOURCE PACK VERSION 22 资源包版本 22 更新内容
Renamed minecraft:grass block and item to minecraft:short_grass
将 minecraft:grass 方块与物品重命名为 minecraft:short_grass
EXPERIMENTAL FEATURES 实验性特性
CRAFTER 合成器
The Crafter is a new block that enables the crafting of items and blocks via Redstone
合成器是一种全新的方块,可通过红石信号来合成物品或方块
The Crafter will eject one crafted item at a time when powered by a new Redstone signal / pulse (not a continuous signal)
当接收到单个红石信号脉冲时,合成器将进行一次合成并弹出合成后的物品(持续的信号不能使它连续工作)
Upon receiving this new signal, the Crafter will eject the recipe result from the front face
当接收到这个信号时,合成器会从前面弹出按配方合成的结果
If the output result has multiple type of items all the result items will be ejected together
如果输出结果含有多种类型的物品,则所有物品会被一同弹出(例如在合成蛋糕后空桶也会被弹出)
The Crafter can be oriented in any direction when placed
合成器可在摆放时朝向任意方向
CRAFTER UI 合成器 UI
The Crafter has a 3x3 interactable crafting grid
合成器拥有 3x3 且互动的合成窗格
The Crafter’s crafting grid slots are toggleable, meaning that the player can change the behavior of a slot by clicking or pressing on a slot with an empty hand
合成器的合成窗格都是可调整的,玩家可通过在 GUI 空手单击来调整单个格子的行为
A slot that is ‘toggled’ cannot hold any items, and therefore cannot have items placed into it by other blocks, such as Hoppers and Droppers
被“禁用”的格子不再能放置物品,也不会从其它方块(漏斗和投掷器)接收物品
Unlike the Crafting Table, the Crafter displays a preview of the crafted item which will be crafted and ejected on the next Redstone pulse but cannot be manually taken out by the player
The Crafter UI is shared between all players interacting with the Crafter, meaning that multiple players can interact with the Crafter at the same time, similar to Chests and Hoppers