pocketmine/bedrock-item-upgrade-schema

用于升级在较老版本的Minecraft: Bedrock世界存档中找到的物品的JSON模式

1.12.0 2024-09-11 19:48 UTC

This package is auto-updated.

Last update: 2024-09-17 16:11:15 UTC


README

用于升级在较老版本的Minecraft: Bedrock世界存档中找到的物品的JSON模式

背景

与方块一样,Bedrock不会自动升级物品(例如在物品栏、物品框架、掉落物品等)除非它们所在的块被加载并保存。

这意味着任何想要支持所有Minecraft: Bedrock世界的程序都需要知道如何升级这些旧数据。

存储库内容

  • id_meta_upgrade_schema 子目录包含一系列用于逐个版本升级的JSON模式列表。
  • item_legacy_id_map.json 包含旧版数字ID与其字符串ID对应关系的映射(最高到1.16,尽管自1.5以来在vanilla世界存档中没有使用数字ID)
  • 1.12.0_item_id_to_block_id_map.json 包含物品ID到对应方块ID的映射,适用于所有方块物品。

推荐用于反序列化旧数据的方法

由于缺乏版本控制,物品处理比方块麻烦得多。这意味着我们只能猜测实际版本或始终应用所有升级器。

经典物品(MCPE <= 1.5, PM <= 1.12)

  1. 以整型ID + meta开始
  2. 通过 item_id_map.json 将1.16字符串ID转换为字符串ID + meta
  3. 以中世纪物品反序列化

中世纪物品(MCPE 1.6 - 1.8)

  1. 以字符串ID + meta开始
  2. 如果在 1.12.0_item_id_to_block_id_map.json 中找到ID,则反序列化为方块物品;否则作为普通物品

非方块物品

  1. 以现代物品反序列化

方块物品

  1. 通过 1.12.0_item_id_to_block_id_map.json 将字符串方块ID转换为字符串方块ID + meta
  2. 使用 BedrockBlockUpgradeSchema 数据转换为blockstate -> blockstate NBT
  3. 将blockstate NBT反序列化为方块

现代物品(MCPE 1.9 - 现今)

  1. 以字符串ID + meta / blockstate NBT开始
  2. 如果找到blockstate NBT,则将其反序列化为方块物品;否则作为普通物品

非方块物品

  1. 当前字符串ID通过 id_meta_upgrade_schema/ 子目录中提供的模式进行转换 -> 当前字符串ID + meta

方块物品

  1. 将blockstate NBT反序列化为方块(可能需要 BedrockBlockUpgradeSchema 进行升级)