破坏性技术更新日志
又名“升级你的数据包后什么东西会坏掉”
⚠️本文部分正文内容翻译自misode的“技术性更新日志”页面: https://misode.github.io/changelog
前言
本条目列出所有原版Minecraft各版本更新时所有的破坏性改动,也就是那些如果不加处理会导致数据包或资源包在升级版本后无法正常运行的更新。
请注意大部分条目经过简化,目的仅为提醒读者这项变更的存在。请查阅Wiki以获取详细说明。
改动日志以正式版本为分类条目,降序排列。
迁移指南
正文
1.21.11
数据包:
- 命令
- /worldborder的时间参数现在默认使用游戏刻作为单位。
- 现在世界边界由游戏刻而不是现实时间控制。
- 所有的游戏规则现在使用命名空间ID。所有的原ID被重命名为snake_case。部分游戏规则的含义发生反转。部分游戏规则的值域现在有额外限制。请查阅Wiki。
- NBT
- 移除了
AngerTime,以anger_end_time取代,表示生物从哪刻起不再愤怒。 AngryAT重命名为angry_at。
- 移除了
- 数据组件
consumable组件的animation字段中,原有的spear动画重命名为trident。加入了新的spear动画。intangible_projectile组件现在有工具栏提示。
- 标签
- 重命名物品标签
#enchantable/sword→#enchantable/sweeping。 - 以下生物群系标签被新的环境属性取代,故移除:
#snow_golem_melts,#increased_fire_burnout,#plays_underwater_music,#has_closer_water_fog。
- 重命名物品标签
- 物品修饰器
filter修饰器中,将modifier替换为on_pass和on_fail两个字段,分别在测试成功和失败时执行。
- 世界生成
- 维度类型和生物群系中的以下字段被移动到新的环境属性选项中:
ultrawarm,bed_works,respawn_anchor_works,cloud_height,piglin_safe,has_raids,natural,fog_color,water_fog_color,sky_color,particle,ambient_sound,music,music_volume。
- 维度类型的
effects被移除,由skybox和cardinal_light取代。 - 维度类型的
fixed_time被重置为has_fixed_time,新字段为布尔值,默认为false。基于时间的效果现在由环境属性指定。
- 维度类型和生物群系中的以下字段被移动到新的环境属性选项中:
- 杂项
- 测试环境定义格式中,
game_rules的bool_rule和int_rule字段已被rules取代。
- 测试环境定义格式中,
资源包:
- 模型和纹理:
- 静止的水和熔岩的纹理现在硬编码为
minecraft:block/water_still和minecraft:block/lava_still - 新增了
items纹理集,包含所有物品的纹理。同一个物品模型所使用的纹理必须全都来自于items或全都来自于blocks。
- 静止的水和熔岩的纹理现在硬编码为
- 着色器:
- 加入了
ChunkSection,被terrain.vsh使用,替代了DynamicTransforms。
- 加入了
1.21.9
数据包:
- 世界
- 出生点区块不再被强加载。
- 移除了
spawnChunkRadius游戏规则,因为不再有出生点区块的概念。 - 每个世界的世界边界现在各自独立。
- 飞行中的末影珍珠以及活跃的传送门现在会加载区块。
- 命令
/test pos [<var>]现在搜索半径由200格更改为250格。/test clearall [<radius>]的默认值更改为250格。/summon在和平难度下尝试召唤无法在和平难度生成的敌对生物会执行失败。/setworldspawn和/spawnpoint的<angle>参数被替换为可选参数<rotation>,可以在设置玩家重生时面朝的垂直角度。/setworldspawn现在不止可以在主世界中执行。服务端会在世界出生点执行命令,即使出生点不在主世界。
- 文本组件
- 现在尝试使用
run_command执行/say、/me、/msg、/tell、/w、/teammsg和/tm这类署名命令会弹出提示窗,允许玩家复制命令手动执行。
- 现在尝试使用
- 数据组件
block_attacks组件,受到为0的伤害现在不会触发抵挡行为,不会进入冷却,也不会因抵挡而受到击退。profile组件现在有静态和动态两种行为:- 静态:当此组件具有
properties、同时具有name和id字段亦或上述两字段均无时。- 将会永久按照生成时的档案。展示的皮肤会在组件创建时冻结。
- 动态:
name和id字段只有其一时。- 将会动态解析为最近的数据。会展示目标当前的皮肤。
- 旧版世界中的头颅会优先转换为动态形式。
- 静态:当此组件具有
- NBT
- 玩家的
respawn中的angle重命名为yaw。
- 玩家的
资源包:
- 着色器:
- 移除了
core/blit_screen.vsh、post/blit.vsh、post/blur.vsh、post/invert.vsh、post/sobel.vsh和post/screenquad.vsh,并由core/screenquad.vsh替代。 - 移除了
core/position_color_lightmap.vsh/fsh和core/position_color_tex_lightmap.vsh/fsh。 - 用于后处理效果、亮度图生成和全屏位块传输的顶点着色器不再传递
Position属性,而须通过gl_VertexID分配顶点坐标。 - 修改了
core/terrain.vsh中函数minecraft_sample_lightmap中UV计算的部分。 - 所有着色器的版本已经从
150提升至330
- 移除了
pack.mcmeta
- 现在版本号包含一个主要版本号和一个次要版本号。
- 弃用了
supported_formats。 - 加入了必选字段
min_format和max_format规定支持的版本。- 格式为
[主版本号,次版本号]。若只填入一个整数则等价于[主版本号, 0]。
- 格式为
pack_format现在是可选的。
1.21.6
数据包:
- 文本组件
- 现在使用
run_command执行命令时,若执行的命令需要1级或更高的权限,将会展示弹窗提示玩家二次确认。
- 现在使用
- NBT
- 药水效果云的
Particle被重命名为custom_particle。使用entity_effect和tinted_leaves粒子时,颜色不再从药水中继承。
- 药水效果云的
- 标签
- 重命名以下方块标签:
#plays_ambient_desert_block_sounds→#triggers_ambient_desert_sand_block_sounds
- 重命名以下方块标签:
- 数据组件
painting/variant组件不再接受内联。
资源包:
- 纹理
- 移除了
mob_effects纹理集。其中的纹理移动至gui纹理集中。
- 移除了
- 模型
- 现在在物品模型映射中,若物品在GUI中的大小大过一个格子,需要添加
"oversized_in_gui": true,否在会在格子边缘被裁断。
- 现在在物品模型映射中,若物品在GUI中的大小大过一个格子,需要添加
- 声音:
- 重命名
block.sand.wind为block.dry_grass.ambient。
- 重命名
- 着色器
- 所有的内置uniform都改为统一变量块而不再是松散的。后处理着色器现在接受统一变量块。
- 杂项
- 玩家头颅物品模型不再从
profile数据组件中读取纹理。加入了新的player_head模型类别以渲染profile的纹理。
- 玩家头颅物品模型不再从
1.21.5
数据包:
- SNBT格式:
- 整数现在可以以
0开始。 - 不再允许使用科学计数法(如
1e1000)表示数字。
- 整数现在可以以
- NBT:
ArmorItems,HandItems,和body_armor_item被合并为了equipment,包含所有槽位的物品。ArmorDropChances,HandDropChances,以及body_armor_drop_chance被合并为了drop_chances。- 这是一个复合标签,内含各个槽位的掉落概率。
Pos,Motion,和Rotation列表现在必须有正确数量的元素。- 重命名
FallDistance为fall_distance且类型更改为double。 - 矿车类实体的
CustomDisplayTile被移除。DisplayState总是可以设置展示的方块。DisplayOffset不再需要有自定义的展示方块才能生效。 - 物品展示框,荧光物品展示框,和栓绳结的
TileX,TileY,和TileZ被合并为block_pos。 - 恼鬼的
LifeTicks重命名为life_ticks,BoundX,BoundY,和BoundZ被合并为bound_pos。 - 海龟的
HasEgg重命名为has_egg,HomePosX,HomePosY,和HomePosZ被合并为home_pos,TravelPos<X|Y|Z>被移除。 - 海豚的
TreasurePosX,TreasurePosY,和TreasurePosZ被移除。 - 幻翼的
Size重命名为size,AX,AY,和AZ被合并为anchor_pos。 - 多个实体的
SleepingX,SleepingY,和SleepingZ被合并为sleeping_pos。 - 玩家实体NBT:
enteredNetherPosition重命名为entered_nether_pos,且现在为3个double组成的列表。SpawnX,SpawnY,SpawnZ,SpawnAngle,SpawnDimension,和SpawnForced标签合并为respawn。
- 命令
/setblock和/fill命令现在不会更改方块实体数据,除非特别地使用{...}指定。- 想要清空方块实体的数据,必须指明
{}。 - 只要在命令执行前后有方块的状态或数据变更,就视为执行成功。
- 想要清空方块实体的数据,必须指明
- 标签
- 重命名以下方块标签:
#dead_bush_may_place_on→#dry_vegetation_may_place_on
- 重命名以下方块标签:
- 文本组件
- 文本组件现在在所有命令中使用SNBT格式。在JSON文件中使用JSON格式。
hoverEvent和clickEvent,以及它们的子项被重命名。
- 谓词
- 实体谓词新增了
components用于匹配实体组件。下列type_specific实体子谓词已被移除并挪入components中:axolotl,fox,mooshroom,rabbit,horse,llama,villager,parrot,salmon,tropical_fish,painting,cat,frog,wolf,pig, 以及sheep的color项。
- 实体谓词新增了
- 数据组件
- 重命名
weapon组件的damage_per_attack为item_damage_per_attack。 hide_additional_tooltip和hide_tooltip组件被移除。多个组件中的show_in_tooltip项也被移除。现在统一由新组件tooltip_display管理。
- 重命名
- 配方
smithing_trim配方类型的base,template,和addition现在是必选的。crafting_transmute配方类型的base现在是必选的。
- 进度
background现在使用命名空间ID而不再使用带.png路径的绝对路径。
- 世界生成
patch_pumpkin和patch_sugar_cane的生成顺序被调换。
- 杂项
- 槽位
horse.saddle重命名为saddle且任何生物都拥有。 - 盔甲纹饰定义不再有
item。现在这由配方决定。 tinted_leaves粒子现在需要color提供颜色。- 猪变种定义格式的
texture重命名为assets_id。 - 狼变种定义格式
angry_texture,tame_texture,wild_texture合并为assets。 - 各生物变种格式的
biome重命名为spawn_conditions,且可以根据更多条件决定生成。 - 实体
potion独立为splash_potion和lingering_potion两个实体。
- 槽位
资源包:
- 纹理:
- 以下纹理的命名空间ID变更:
entity/pig/pig_saddle.png→entity/equipment/pig_saddle/saddle.pngentity/strider/strider_saddle.png→entity/equipment/strider_saddle/saddle.png.../cow→.../temperate_cow.../pig→.../temperate_pigentity/chicken.png→entity/chicken/temperate_chicken.png- 以下纹理的大小变化:
temperate_cowtemperate_pigred_mooshroombrown_mooshroom
- 以下纹理被从原本的纹理文件中分离为单独的文件:
entity/camel/camel.png→entity/equipment/camel_saddle/saddle.pngentity/horse/horse_<variant>.png→entity/equipment/horse_saddle/saddle.pngentity/horse/donkey.png→entity/equipment/donkey_saddle/saddle.pngentity/horse/mule.png→entity/equipment/mule_saddle/saddle.pngentity/horse/horse_skeleton.png→entity/equipment/skeleton_horse_saddle/saddle.pngentity/horse/horse_zombie.png→entity/equipment/zombie_horse_saddle/saddle.png
- 模型
- 牛和蘑菇牛的模型多了个鼻子。
- 声音
- 移除了
entity.wolf.howl。 - 原本的狼的音效被移动到了classic文件夹下。
- 移除了
- 着色器
- 核心和后处理着色器不再使用任何JSON文件定义。
- 删除了着色器中的
program,以vertex_shader和fragment_shader替代。<namespace>:<path>会被解析为assets/<namespace>/shaders/<path>.<vsh|fsh> - 在每个
uniform,type现在是必选的。接受任意的int,ivec3,float,vec2,vec3,vec4,和matrix4。
1.21.4
数据包:
- 命令:
trial粒子加入必选字段duration;
- NBT:
- 修改了TNT矿车的NBT:
- 将
TNTFuse重命名为fuse;
- 将
custom_model_data组件更改为复合标签,set_custom_model_data修饰器同步更新;
- 修改了TNT矿车的NBT:
- 数据包其他组分:
- 移除了
#trim_templates物品标签。 - 移除了
trim_material注册表中的item_model_index字段; equippable组件中的model字段现已重命名为asset_id。
- 移除了
资源包:
引入新格式以描述物品模型;
toast/system精灵图外观现在已更新至使用标准九宫格划分方式;toast/tutorial精灵图现在被缩放为更高的弹窗;advancements/box_obtained和advancements/box_unobtainedGUI纹理现在使用九宫格划分方式变换尺寸;- 与物品栏中盔甲槽一类的空槽位纹理现已从
item移动到gui/sprites/container/slot目录,并重命名; - 织布机、酿造台、马和羊驼物品栏GUI中的空槽位精灵图现已从背景拆分并移动;
1.21.2
数据包:
- 命令:
- 栓绳结,浮漂和闪电不再能通过
/ride骑乘; - 属性id不再有
generic.,player.,zombie.前缀;
- 栓绳结,浮漂和闪电不再能通过
- NBT:
- 重命名
fire_resistant物品组件为damage_resistant,并加入types字段; potion_contents物品组件加入custom_name字段;- 将船和箱船的实体类型拆分为每种材质独立实体;
- 容器方块实体的
Lock字段被重命名为lock,并支持物品谓词;
- 重命名
- 数据包组分:
- 进度:
- 重命名
killed_by_crossbow判据为killed_by_arrow;
- 重命名
- 附魔:
- 重命名附魔类型
damage_item为change_item_damage,并支持负值;
- 重命名附魔类型
- 战利品表、谓词、物品修饰器:
- 移除战利品表
empty; - 移除了
minecraft:boat实体子谓词;
- 移除战利品表
- 配方:
- 配方原料格式修改:
{ "item": "<item id>" }修改为"<item id>"{ "tag": "<tag id>" }修改为"#<tag id>"- 列表格式不再支持tag
- 配方原料格式修改:
- 世界生成:
- 移除了雕刻器类型carvers,现在可直接列出雕刻器;
- 进度:
资源包:
- 纹理:
- 所有与装备相关的纹理现移动到了
textures/entity/equipment的子目录中。
- 所有与装备相关的纹理现移动到了
- 着色器:
rendertype_entity_glint_direct重命名为rendertype_entity_glint;rendertype_entity_translucent_cull重命名为rendertype_item_entity_translucent_cull;- 用于后处理效果的程序定义(
assets/<命名空间>/shaders/program/<名称>.json)现与核心着色器定义(assets/<命名空间>/shaders/core/<名称>.json)一致化:- 移除了没有实际作用的
blend字段。 - 移除了
attributes字段,其顶点属性Position将永被绑定。 Uniform现与为核心着色器提供的Uniform合并,其中Time被重命名为GameTime;
- 移除了没有实际作用的
- 现在后处理管线程序由
assets/<命名空间>/shaders/post移动到assets/<命名空间>/post_effect。 - 后处理管线使用的顶点和片段着色器现由
assets/<命名空间>/shaders/program移动到assets/<命名空间>/shaders/post。 - 后处理渲染过程
name现被重命名为program,且需要命名空间ID。
1.21
数据包:
- NBT:
- 移除了箭类实体的
ShotFromCrossbow字段
- 移除了箭类实体的
- 数据包组分:
- 战利品表、谓词、物品修饰器:
- 诸如谓词的entity键的值重命名:
killer->attackerdirect_killer->direct_attackerkiller_player->attacking_player
- 谓词中的
enchantment字段重命名为enchantments; - 重命名
random_chance_with_looting条件为random_chance_with_enchanted_bonus,并修改如下字段:- 移除
looting_multiplier字段; chance现在为等级依赖函数;- 加入
enchantment字段;
- 移除
- 加入
enchantment_active_check条件; - 重命名
looting_enchant函数为enchanted_count_increase,并加入enchantment字段; - 在
enchant_randomly函数下修改如下字段:enchantments字段重命名为options;- 加入布尔值字段
only_compatible;
enchant_with_levels函数下修改:- 移除了
treasure字段; - 加入
options字段;
- 移除了
copy_name函数更改:重命名了字段source的枚举值:- 将
killer重命名为attacking_entity。 - 将
killer_player重命名为last_damage_player
- 将
- 诸如谓词的entity键的值重命名:
- 战利品表、谓词、物品修饰器:
1.20.5
数据包:
- 命令:
- 粒子:
/particle指令格式大幅修改,详见Wiki- 拆分粒子
gust_emitter为gust_emitter_large和gust_emitter_small
- 属性:
- 重命名属性:
- generic.block_interaction_range → player.block_interaction_range
- generic.entity_interaction_range → player.entity_interaction_range
- 移除属性:
horse.jump_strength
- 重命名属性:
- 命令最大长度现在为2000000(2百万)字符;
- 粒子:
- 实体和NBT:
- 修改了区域效果云实体的
Particle字段以和命令/世界生成格式一致; - 药水箭的
Potion和custom_potion_effects字段被合并在item标签内; - 修改药水效果云的效果字段以与
potion_contents组件匹配; - 修改旗帜的方块实体字段以和
banner_patterns组件匹配; - 修改蜂巢的方块实体字段以和
bees组件匹配; - 重命名部分方块和实体的NBT字段:
- 位置nbt:
{X:1,Y:2,Z:3}→[I;1,2,3] - 蜜蜂:
FlowerPosandHivePos→flower_posandhive_pos - 蜂巢:
FlowerPos→flower_pos - 末影水晶:
BeamTarget→beam_target - 可被栓绳牵引的生物:
Leash→leash - 袭击生物:
PatrolTarget→patrol_target - 末地传送门:
ExitPortal→exit_portal - 流浪商人:
WanderTarget→wander_target
- 位置nbt:
- 移除了部分药水效果在大于127级时产生的反效果行为;
- 修改了区域效果云实体的
- 物品组件:
物品的NBTtags由新的结构化物品组件替代:
Damage:12->damage=12RepairCost:12->repair_cost=12Unbreakable:1b->unbreakable={}Enchantments:[{id:"sharpness",lvl:2}]->enchantments={levels:{sharpness:2}}StoredEnchantments->stored_enchantmentsdisplay:{Name:'"hello"'}->custom_name='"hello"'display:{Lore:['"hello"']}->lore=['"hello"']CanDestroy:["stone"]->can_break={blocks:"stone"}CanPlaceOn:["stone"]->can_place_on={blocks:"stone"}display:{color:16711680}->dyed_color={rgb:16711680}AttributeModifiers:[]->attribute_modifiers={modifiers=[]}Charged:1b,ChargedProjectiles:[{id:"arrow"}]->charged_projectiles=[{id:"arrow"}]Items:[](bundle) ->bundle_contents=[]display:{MapColor:16711680}->map_color=16711680Decorations:[](filled map) ->map_decorations={}map:1->map=1CustomModelData->custom_model_dataPotion:"invisibility",CustomPotionColor:16711680,custom_potion_effects:[]->potion_contents={potion:"invisibility",custom_color:16711680,custom_effects:[]}pages:["hello"](book and quill) ->writable_book_content={pages:["hello"]}pages:['"hello"'],title:"Title",author:"Misode",generation:1,resolved:1b(written book) ->written_book_content={pages:['"hello"'],title:"Title",author:"Misode",generation:1,resolved:true}Trim={...}->trim={...}effects:[](suspicious stew) ->suspicious_stew=[]HideFlags-> split to the different components as well ashide_additional_tooltipcomponentDebugProperty->debug_stick_stateEntityTag:{...}->entity_data={...}- bucketed mobs data ->
bucket_entity_data={...} instrument:"ponder_goat_horn"->instrument="ponder_goat_horn"Recipes:[](knowledge book) ->recipes=[]LodestonePos,LodestoneDimension, andLodestoneTracked->lodestone_target={pos:[13,64,-43],dimension:"the_nether"}Explosion(firework star) ->firework_exlosion={}Fireworks:{Explosions:[],Flight:1}(firework rocket) ->fireworks={explosions:[],flight_duration:1}SkullOwner:{Name:"Steve"}->profile={name:"Steve"}BlockEntityTag:{note_block_sound:"ambient.cave"}->note_block_sound="ambient.cave"BlockEntityTag:{Base:2}->base_color="magenta"BlockEntityTag:{Patterns:[]}->banner_patterns=[]BlockEntityTag:{sherds:[]}->pot_decorations=[]BlockEntityTag:{Items:[]}(shulker box) ->container=[]BlockEntityTag:{Bees:[]}->bees=[]BlockEntityTag:{Lock:"test"}->lock="test"BlockEntityTag:{LootTable:"foo",LootTableSeed:123}->container_loot={loot_table:"foo",seed:123}BlockEntityTag:{...}->block_entity_data={...}BlockStateTag:{...}->block_state={...}
- 加入了物品组件
enchantment_glint_override; - 物品格式
Count重命名为count
- 数据包组分:
- 战利品表:
- Nested lists are no longer supported in loot function lists.
- 战利品表抽取项loot_table(从提供的嵌套战利品表返回所有物品)现在有以下语法:value可以是:
- 一个命名空间ID,指对另一个战利品表的引用。
- 完整的战利品表,格式与独立文件的战利品表相同。
- 谓词:
- 物品谓词修改:
- 移除了 tag 字段,items 字段现在支持标签;
- potion 字段重命名为 potions;
- nbt 字段重命名为 custom_data;
- 方块谓词修改
- 移除 tag 字段,blocks 字段现在支持标签;
- 流体谓词
fluid重命名为fluids - 实体谓词
type支持标签; - 位置谓词修改:
biome重命名为biomes,并支持群系标签;structure重命名为structures,并支持结构标签;
- 修改物品谓词的
predicates下的子谓词:durability->damage子谓词;enchantments->enchantments子谓词;stored_enchantments->stored_enchantments子谓词;potions->potion_contents子谓词;custom_data->custom_data子谓词;
- 物品谓词修改:
- 物品修饰器:
- 重命名物品修饰器函数
set_nbt→set_custom_datacopy_nbt→copy_custom_data
- 重命名
/attribute命令的operation字段:add→add_valuemultiply_base→add_multiplied_basemultiply→add_multiplied_total
- 移除了
set_contents物品修饰器函数中的type字段,并加入component字段; - 为
set_attributes物品修饰器函数加入replace字段; set_lore物品修饰器函数下replace字段重命名为mode;set_written_book_pages函数:pages现在是一个JSON对象而不再是一个JSON文本。
- 重命名物品修饰器函数
- 配方:
- 配方的产物栏现在支持指定物品组件;
- 标签:
- 修改:
- 实体标签
punchable_projectiles重命名为redirectable_projectile; - 重命名
axolotl_tempt_items为axolotl_food;
- 实体标签
- 移除:
- 移除物品标签
tools - 移除实体标签
deflects_arrows,deflects_tridents
- 移除物品标签
- 修改:
- 世界生成:
- 用于
worldgen定义的整数和浮点数提供器不再包装在type旁的额外value字段中。
- 用于
- 战利品表:
资源包:
- 纹理:
- 将地图装饰图标从以前的
map_icons.png中分离为从textures/map/decorations/目录中加载的图集;
- 将地图装饰图标从以前的
- 字体:
- ttf字体提供器的
shift字段的值现在被限制在-512到512之间;
- ttf字体提供器的
- 着色器:
- 后处理着色器
blur重命名为box_blur; - 新增
entity_outline_box_blur着色器;
- 后处理着色器
1.20.3
数据包:
- 命令:
/function命令不再返回执行的命令条数;- 游戏规则
maxCommandChainLength现在更严格计数;
- NBT:
- 重命名方块草及其对应物品的注册名,从minecraft:grass重命名为minecraft:short_grass
- 将三叉戟(实体)的
Trident字段重命名为item; - TNT实体的nbt数据:
Fuse重命名为fuse; 添加block_state字段;
资源包:
- 纹理:
.png现在是唯一支持的纹理格式;
1.20.2
数据包:
- 命令:
- 加入了函数宏,可以在函数中加入宏参数传入函数,以实现动态函数;
- 可以在一行命令的末尾用反斜杠
\表示换行,以支持多行单指令,增加可读性;
- 调试:
- 现在命令记忆功能跨存档保存50条,可在游戏文件夹的
command_history.txt文件中找到;
- 现在命令记忆功能跨存档保存50条,可在游戏文件夹的
- NBT:
- 生物NBT的状态效果id由数字id改为命名空间id(字符串);
- 许多状态效果相关的实体NBT键名从驼峰格式改为蛇形格式:
- 生物状态效果字段:
Id->idAmbient->ambientAmplifier->amplifierDuration->durationShowParticles->show_particlesShowIcon->show_iconHiddenEffect->hidden_effectFactorCalculationData->factor_calculation_data
- 药水和药水箭:
CustomPotionEffects->custom_potion_effects
- 状态效果云和迷之炖菜:
Effects->effectsEffectId->idEffectDuration->duration
- 哞菇:
EffectIdandEffectDuration->stew_effects
- 生物状态效果:
ActiveEffects->active_effects- 信标:
Primary->primary_effectSecondary->secondary_effect
- 生物状态效果字段:
资源包:
- 纹理:
- 文本编辑框现在是一张位于
widget/text_field和widget/text_field_highlighted的九宫格切分的精灵图。 - 列表和编辑框的滚动条现在是一张位于
widget/scroller的九宫格切分的精灵图。 realms命名空间的纹理被移入minecraft命名空间内;- 所有含有多个部件贴图的GUI纹理现在都被拆分为单独的贴图,位于
textures/gui/sprites目录下。 villager2.png被重命名为villager.png- 辅助功能、语言和Realms新闻的按钮图标现在是单独的文件,不再各自附于按钮的纹理之上。
- 文本编辑框现在是一张位于
1.20
数据包:
- 数据包组分:
- 进度:
placed_block,item_used_on_block, 和allay_drop_item_on_block进度触发器下所有字段并入location字段;现在该字段接受战利品表谓词。
- 战利品表、谓词、物品修饰器:
- 加入
all_of条件,alternative条件重命名为any_of
- 加入
- 标签:
- 方块标签
replaceable_plants拆分为replaceable和replaceable_by_trees
- 方块标签
- 世界生成:
- 移除了结构后处理器
rule的output_nbt字段,新增了block_entity_modifier作为替代。
- 移除了结构后处理器
- 进度:
资源包:
- 字体:
- 移除字符提供器
legacy_unicode;
- 移除字符提供器
1.19.4
数据包:
- 实体和NBT
- 加入(方块、物品、文本)展示实体、交互实体;
- 数据包组分
- 战利品表、谓词、物品修饰器:
- 伤害类型谓词修改,移除了原先判据,改用新的伤害类型数据判定,使用
tags字段判定;
- 伤害类型谓词修改,移除了原先判据,改用新的伤害类型数据判定,使用
- 战利品表、谓词、物品修饰器:
1.19.3
数据包:
- 命令:
- 修改了命令
/publish的格式;
- 修改了命令
- 数据包组分:
- 配方:
- 配方文件内加入必选字段
category;
- 配方文件内加入必选字段
- 标签:
- 移除方块标签
overworld_natural_logs;
- 移除方块标签
- 世界生成:
- 移除
template_pool的name字段;
- 移除
- 配方:
资源包:
- 纹理:
- 在
entity/player/(slim|wide)新增了各默认玩家皮肤;移除了entity/steve和entity/alex; - 修改了
gui/container/creative_inventory/tabs纹理;
- 在
1.19.1
1.19
数据包:
- 命令:
- 猫变种由数字id改为命名空间id;
- 状态效果
ID的类型由字节型改为整型;
- 进度:
- 进度触发器
location,slept_in_bed,hero_of_the_village和voluntary_exile下location字段被移入player.location位置;
- 进度触发器
- 战利品表、谓词、物品修饰器:
- 位置谓词字段
feature重命名为structure;
- 位置谓词字段
- 世界生成:
- 移除地物
ice_patch,ice_patch并由地物disk代替; - 树根放置器格式修改:
y_offset重命名为trunk_offset_y;- 字段
max_root_width,max_root_length,random_skew_chance,can_grow_through,muddy_roots_in,muddy_roots_provider移入mangrove_root_placement对象下; - 加入字段
above_root_placement;
- 地物
glow_lichen重命名为multiface_growth; block_rot处理器的字段rottable_blocks现在需要一个#前缀;- 移除结构字段
adapt_noise; - 移除密度函数
slide,由add,mul,y_clamped_gradient代替; - 移除噪声设置字段
noise.sampling,noise.top_slide,noise.bottom_slide,并移入密度函数; - 维度类型不再内联于维度数据中;
- 移除区块噪声生成器的
seed字段; - 移除密度函数
terrain_shaper_spline并移除密度函数spline的min_value和max_value字段; - 移除生物群系字段
category; - 将
worldgen/configured_structure_feature文件夹移入worldgen/structure文件夹;
- 移除地物
1.18.2
数据包:
- 命令
locate命令现在接受已配置的结构地物ID作为参数而不是结构类型;locate命令和locatebiome命令现在支持标签作为参数;
- 世界生成
- 加入结构集JSON文件,取代了噪声字段中的
structures字段; - 移除了噪声设置中的字段
noise_caves_enabled,noodle_caves_enabled; - 一些标签字段现在要求在ID前面加上
#,但是它们暂不接受元素列表:dimension_type中的infiniburnfeature.geode配置中的blocks.cannot_replace和blocks.invalid_blocksfeature.vegetation_patch和feature.waterlogged_vegetation_patch配置中的replaceablefeature.root_system配置中的root_replaceablestructure_processor.protected_blocks中的value
- 修改了噪声设置中
structures的格式;
- 加入结构集JSON文件,取代了噪声字段中的
1.18
数据包:
命令
- 移除了记分项、记分板名称、队伍名称的名称长度限制;
NBT
- 将刷怪笼的
SpawnPotentials格式更改为:snbt{ weight: <int>, data: { entity: {...}, custom_spawn_rules: {...} } } - 将刷怪笼的
SpawnData字段的内容移动到SpawnData.entity;
- 将刷怪笼的
进度
- 将进度谓词中的
nether_travel的entered重命名为start_position,移除了字段exit;
- 将进度谓词中的
物品修饰器
- 现在
set_contents和set_loot_table物品修饰器函数需要type字段
- 现在
标签
- 将方块标签
lava_pool_stone_replaceables重命名为lava_pool_stone_cannot_replace;
- 将方块标签
世界生成
- 加入用于地物放置的方块谓词;
- 加入了已放置的地物;
- 加入了表面规则;
- 加入噪声JSON数据文件;
- 移除了地表生成器;
- 移除了方块放置器;
1.17
数据包:
- 命令
- 加入
/item命令,取代了/replaceitem命令; /give命令能给予的物品上限现在是100;
- 加入
- 进度
- 在触发器
effects_changed中加入条件source;
- 在触发器
- 战利品表和谓词
- 把谓词中的所有物品条件字段的名称从
item修改为了items,所有方块条件字段的名称从block修改为了blocks;
- 把谓词中的所有物品条件字段的名称从
- 加入了物品修饰器
- NBT
fireball的字段ExplosionPower现在是byte而不是int;- 史莱姆的字段
Size现在上限是126; - 药水云的字段
Radius现在上限是32;
- 标签
- 重命名方块标签:
snow_step_sounds→inside_snow_step_sounds
- 重命名方块标签:
- 方块
- 铁轨能含水了,水不再破坏铁轨;
- 将炼药锅拆分为
cauldron(空的炼药锅),water_cauldron(装水的)和lava_cauldron(装岩浆的); - 重命名
grass_path→dirt_path,grimstone→deepslate;
- 实体
- 加入了
marker
- 加入了
- 其他
- 加入了游戏事件;
- 使用
F3+L可以生成一份性能报告,储存在.minecraft/debug/profiling/下; - 文本组件中的目标选择器组件和NBT组件可以使用字段
separator指定分隔符;
资源包:
- 着色器
- 现在使用OpenGL 3.2渲染,可使用资源包替换原版着色器;
- 新增资源包目录
shaders/core和shaders/include;
- 其他
- 制作者名单现在是json格式储存而不是txt;
1.16.2
数据包:
- 世界生成:
- 自定义世界生成和维度设置现在在数据包中使用相同的文件夹模式(namespace/<类型>/resource.json),与其他资源保持一致。
1.16
数据包:
- 命令:
- 属性命名由驼峰命名改为下划线命名;
- NBT:
- 实体的UUID值现在改为4元素整数数组;;
- 数据包组分:
- 进度:
- 移除进度触发器
safely_harvest_honey; - 进度内容
location,slept_in_bed,hero_of_the_village,voluntary_exile字段被放入location字段下;
- 移除进度触发器
- 世界生成:
- 加入实验性玩法“自定义世界”;
- 进度:
- 其他:
- 数据包加载优化:
- 若加载失败,则修改不会被应用;
- 如果进入世界时,已加载的数据包出错,会弹出“安全模式”选项;
- 仅在数据包成功加载后修改数据包列表;
- 数据包现在可以在世界生成之前指定;
- 现在若数据包组分缺失(如卸载了
vanilla数据包),将阻止玩家加载世界。
- 数据包加载优化: