--- version-image-link: https://i0.hdslb.com/bfs/archive/4c14519160578eb16cf0c19ac33f3bf21161413f.png server-jar: https://piston-data.mojang.com/v1/objects/baab122c7652b302621f7befd5be40abef9b9b7c/server.jar translator: 最亮的信标 cats: ['1.21','1.21.5'] --- 在本周的快照中,我们带来了盼望已久的同步特性——倒下的树木第一次亮相于 Java 版。除此之外,萤火虫灌木丛现在可以在红树林沼泽和罕见地在恶地中生成了。 在技术性方面,命令中的 SNBT 语法获得了扩展与改进,包含了与 SNBT 文本组件阻止在运行中转义相关的漏洞修复。 ## 新特性 * 同步基岩版,增加了倒下的树木 ### 倒下的树木 * 倒下的树木是一个新的树的装饰性变种 * 倒下的树木加入到了以下四种树木类型: * 橡树 * 白桦树 * 丛林树 * 云杉树 * 倒下的白桦树有高矮两种不同版本 * 一些倒下的树上会装饰着蘑菇或藤蔓 * 倒下的树可以在所有该树种生长的生物群系中找到,下列生物群系除外: * 草甸 * 竹林 * 河流 * 雪林 * 繁花森林有倒下的白桦树但没有倒下的橡树 ## 更改 ### 枯叶 * 枯叶现在能被其它方块替换 ### 萤火虫灌木丛 * 萤火虫灌木丛现在可以在红树林沼泽以及恶地(非常罕见)的水边生成,就像其它有水的生物群系一样。 ## 技术性更改 * 数据包版本现在为 69 * 客户端有了新的命令行参数 `--renderDebugLabels` * 向相关的 OpenGL 物体增加了调试标签,使得开发者能更简单地调试渲染 ## 数据包版本 69 * 为 NBT、文本组件以及内联谓词(也称作 SNBT)扩展了在命令中的对象标记 ### 命令 * `/data` 现在可以透明地创建和修改异构列表 ### 实体数据 * `FallFlying` 字段不再在被移除时保留 * 现在 `Health` 与 `Air` 字段若不指定,则默认为各自的最大值 #### `AREA_EFFECT_CLOUD` * 现在 `Duration` 字段若不指定,则默认为 `-1` * 如果 `Duration` 字段为 `-1`,区域效果云将不再自己消失 * 这意味着生成未指定时常的区域效果云将会不再立即消失 #### `CREEPER` * 现在 `Fuse` 字段若不指定,则默认为 `-1` * 现在 `ExplosionRadius` 字段若不指定,则默认为 `3` #### `DOLPHIN` * 现在 `Moistness` 字段若不指定,则默认为 `2400` #### `ENDER_DRAGON` * 现在 `DragonDeathTime` 字段若不指定,则默认为 `0` #### `FALLING_BLOCK` * 现在 `HurtEntities` 字段若不指定,则默认为 `false` (或 `true` 如果 `BlockState` 为 `anvil`) * 现在 `FallHurtAmount` 字段若不指定,则默认为 `0` * 现在 `FallHurtMax` 字段若不指定,则默认为 `40` * 现在 `DropItem` 字段若不指定,则默认为 `true` * `TileEntityData` 字段移除时不再保留 #### `FIREWORK_ROCKET` * 现在 `ShotAtAngle` 字段若不指定,则默认为 `false` #### `FOX` * 现在 `Trusted` 字段若不指定,则默认为空(并且使用 `/data` 修改时将不再与原状态合并) #### `GHAST` * 现在 `ExplosionPower` 字段若不指定,则默认为 `1` #### `GOAT` * 现在 `HasLeftHorn` 和 `HasRightHorn` 字段若不指定,则默认为 `true` #### `INTERACTION` * 现在 `width` 和 `height` 字段若不指定,则默认为 `true` #### `Item` * 现在 `Health` 字段若不指定,则默认为 `5` * 现在 `PickupDelay` 字段若不指定,则默认为 `0` * 现在 `Age` 字段若不指定,则默认为 `0` * `Owner` 和 `Thrower` 字段移除时不再保留 #### `ITEM_FRAME` 与 `GLOW_ITEM_FRAME` * 现在 `ItemDropChance` 字段若不指定,则默认为 `1.0` #### `PRIMED_TNT` * 现在 `fuse` 字段若不指定,则默认为 `80` * 现在 `explosion_power` 字段若不指定,则默认为 `4` #### `SHULKER` * 现在 `Color` 字段若不指定,则默认为 `16` #### `SKELETON` * `StrayConversionTime` 字段移除时不再保留 #### `SPECTRAL_ARROW` * 现在 `Duration` 字段若不指定,则默认为 `200` #### `SNOW_GOLEM` * 现在 `Pumpkin` 字段若不指定,则默认为 `true` #### `TNT_MINECART` * 现在 `fuse` 字段若不指定,则默认为 `80` * 现在 `explosion_power` 字段若不指定,则默认为 `4` * 现在 `explosion_speed_factor` 字段若不指定,则默认为 `1` #### `TRADER_LLAMA` * 现在 `DespawnDelay` 字段默认值为 `47999` #### `VILLAGER` * 现在 `FoodLevel` 和 `Xp` 字段若不指定,则默认为 `0` * `ConversionTime` 字段移除时不再保留 #### `WANDERING_TRADER` * 现在 `DespawnDelay` 字段若不指定,则默认为 `0` #### `ZOMBIE` * `DrownedConversionTime` 字段移除时不再保留 #### `ZOMBIE_VILLAGER` * 现在 `Xp` 字段若不指定,则默认为 `0` * `ConversionTime` 字段移除时不再保留 #### `ARROW`, `SPECTRAL_ARROW`, `TRIDENT` * 现在 `damage` 字段若不指定,则默认为 `2` #### `DRAGON_FIREBALL`, `WIND_CHARGE`, `BREEZE_WIND_CHARGE`, `WITHER_SKULL`, `SMALL_FIREBALL` 和 `LARGE_FIREBALL` * 现在 `acceleration_power` 字段若不指定,则默认为 `0.1` #### `SMALL_FIREBALL` 和 `LARGE_FIREBALL` * 现在 `ExplosionPower` 字段若不指定,则默认为 `1` #### `BLOCK_DISPLAY`, `ITEM_DISPLAY` 和 `TEXT_DISPLAY` * 现在 `interpolation_duration`、`teleport_duration` 以及 `start_interpolation` 字段若不指定,则默认为 `0` * 现在 `view_range` 字段若不指定,则默认为 `1` * 现在 `shadow_radius` 字段若不指定,则默认为 `0` * 现在 `shadow_strength` 字段若不指定,则默认为 `1` * 现在 `width` 和 `height` 字段若不指定,则默认为 `0` ### 方块实体数据 #### `CAMPFIRE` * `CookingTimes` 和 `CookingTotalTimes` 字段移除时不再保留 #### `CHISELED_BOOKSHELF` * 现在 `last_interacted_slot` 字段若不指定,则默认为 `-1` #### `HOPPER` * 现在 `TransferCooldown` 字段若不指定,则默认为 `-1` #### `JIGSAW` * 现在 `name`、`target` 和 `pool` 字段若不指定,则默认为 `minecraft:empty` * 现在 `final_state` 字段若不指定,则默认为 `minecraft:air` #### `SCULK_SHRIEKER` * 现在 `warning_level` 字段若不指定,则默认为 `0` #### `STRUCTURE_BLOCK` * 现在 `ignoreEntities` 和 `showboundingbox` 字段若不指定,则默认为 `true` * 现在 `posY` 字段若不指定,则默认为 `1` ### NBT 更改 * 在游戏中任何有 NBT 数据的接口(SNBT 表示、 `/data`)现在支持异构列表,即一个元素可以是不同类型的列表。 * 使用 `/data` 插入或替换一个异构列表中的元素不再报错 * 插入任何数组类型(如: `[I;1,2,3]`)仍限制类型 * 这意味着之前被用于展示异构列表的 'wrapper' 对象将不再可以在游戏中观察到 * `/data` 不再能遍历有空键的路径(如:`/data get ... foo.''.bar`) * NBT 文件类型未受改变 * 异构列表会在储存前进行转换以越过 NBT 限制 * 转换例如:`['a', {'b':3}]` 将会储存为 `[{'':'a'},{'b':3}]` * 现存的外部工具将仍能够像之前一样读取 NBT 文件,但是异构列表将会以转换过的形式显示 * 游戏产生的数据没有变化:对象如文本组件已经产生这个形式的异构列表 * 备注:这些 wrapper 对象可能在游戏中完全不会被观察到,它们仅与直接操作 NBT 文件或网络格式的开发者有关 ### SNBT 更改 * 扩展了在命令中描述对象类数据的文本格式(像 NBT、文本组件、谓词等) #### 数字格式 * 浮点数的整数或小数部分都可以省略 * 例如: `.1` 和 `1.` 现在都是有效的 * 浮点数可以使用 E 标记 * 例如:`1.2e3`、`1.2E3`、`1.2E+3`、`12000e-1` 这些都是代表 `1200.0` 的有效的形式 * 整型数现在可以使用 `0x` 前缀来代表十六进制,可以使用 `0b` 前缀来代表二进制 * 例如:`0xbad`(等于 `2989`) ,`0xCAFE`(等于 `51966`),`0b101` (等于 `5`) * 整型数现在不能以 `0` 开头 * 正常它代表八进制,但是我们限制了它以防意外使用 * 数字序列中间可以包含 `_` 字符(但是不能在序列的开头或结尾) * 例如:`0b10_01`、`0xAB_CD`、`1_2.3_4__5f`、`1_2e3_4` * `NaN`、`Inf` 和 十六进制浮点表示**不受**支持 * 扩展了类型后缀 * 整型类型后缀(`b`、`B` - 字节;`s`、`S` - 短整型;`i`、`I` - 整型;`l`、`L` - 长整型;)可以增加 `s`(带符号)或 `u`(无符号) * 新后缀在解析时仅影响有效范围 - 数值仍以带符号储存 * 例如:`240ub` 等于 `-16sb`,但 `240sb` 不解析 * 当后缀不带有 `u` 或 `s`,默认十进制使用带符号,二进制和十六进制使用不带符号 * 注意:因为 `b` 也是一个有效的十六进制数,字节范围内的十六进制数值必须注明是否带符号,如 `0x11ub` 和 `0x11sb` #### 字符串 * 使用引号引起的字符串现在使用除 `'`、 `"` 以及`\`之外的转义字符序列 * Unicode 转义: * `\x` - 双字节转义,如 `\x42` * `\u` - 四字节转义,如 `\u2603` * `\U` - 八字节转义,如 `\U00002603` * `\N{}` - 带名字的 Unicode 字符,例如 `\N{Snowman}` * 内置转义序列 * `\b` - 退格,Unicode `\x08` * `\s` - 空格,Unicode `\x20` * `\t` - 水平 Tab,Unicode `\x20` * `\n` - 换行,Unicode `\u0a` * `\f` - 换页,Unicode `\u0c` * `\r` - 回车,Unicode `\u0d` * 未使用引号引起的字符串不能以 `0-9`、`.`、`+`、`-` 开头以避免与数字的意外冲突 #### 数字数组 * 没有后缀的数组中的值(`[B;]`、`[I;]`、`[L;]`)现在假设拥有和数组类型匹配的类型 * 例如:`[B;1,2]` 与 `[B; 1b, 2b]` 相同 * 数组现在可以接受比数组类型小的类型 * 例如:`[I;1b,2s,3]` 有效且与 `[I;1i,2i,3i]` 相同 #### 列表 * 列表现在接受尾随逗号 * 例如:`[1,2,]` 与 `[1,2]` 相同 * 仅能允许一个尾随逗号,并且其必须位于一个有效元素后—— `[,]` 和 `[1,,]` 都是无效的 #### Compounds * Compounds(映射)现在接受尾随逗号 * 例如:`{a:b,}` * 仅能允许一个尾随逗号,并且其必须位于一个有效键值对后—— `{,}` 和 `{a:b,,}` 都是无效的