本篇教程由作者设定使用 CC BY-NC-SA 协议。

注意:本篇教程最好由批量导入工具开发者亲自审核并全文背诵

明确:以下内容若不指定版本,默认指minecraft1.20.1版

会最大程度上确保所有minecraft版本下导出的数据版本相同,

当某个数据版本没有被任何版本使用时即被删除


导出注释

Exported by Recipe Renderer v2.2.10

TargetMod minecraft@1.20.1

Environment Minecraft@1.20.1+Fabric@0.14.22

注:下划线为可变区

添加注释的原因:为了方便站长在导出者未提供详细的信息的情况下从导出包中获取一个权威的导出源信息。


item.jsons

版本 item_v4

{
    "id": 路径型字符串,该物品的注册名,
    "en": 字符串,英文环境下的名称,
    "zh": 字符串,中文环境下的名称,
    "tabs": 数组型字符串,该物品所属的物品栏的中文环境下的名称,
    "tags": 数组型路径型字符串,
    "stackSize": 整数,最大堆叠数量,不可堆叠为0,
    "durability": 整数,该物品的耐久度,无耐久度为0,
    "nut": 整数,饱食度,20为10个鸡腿,
    "sat":  浮点数,饱和度,20.0为10个金鸡腿(苹果皮mod),
    "ico32": 字符串,32x的图片,当存在'#'前缀时代表路径引用,否则为Base64编码的图片,
    "ico128": 字符串,128x的图片,当存在'#'前缀时代表路径引用,否则为Base64编码的图片
}

实例

{"id":"minecraft:painting","en":"Painting","zh":"画","tabs":"[功能方块]","tags":"[]","stackSize":64,"durability":0,
"nut":0,"sat":0.0, "ico32":"#attachment/ico32/painting_1.png","ico128":"#attachment/ico128/painting_1.png"}


entity.jsons

版本 entity_v2

{
    "id": 路径型字符串,该实体的注册名,
    "en": 字符串,英文环境下的名称,
    "zh": 字符串,中文环境下的名称,
    "ico128": 字符串,128x的图片,当存在'#'前缀时代表路径引用,否则为Base64编码的图片,
    "ico32": 字符串,32x的图片,当存在'#'前缀时代表路径引用,否则为Base64编码的图片
}

实例:

{"id":"minecraft:ender_dragon","zh":"末影龙","en":"Ender Dragon",
"ico128":"#attachment/entity/ender_dragon.png","ico32":"#attachment/entity32/ender_dragon.png"}

enchantment.jsons

版本 enchantment_v1

{
    "id": 路径型字符串,该附魔的注册名,
    "en": 字符串,英文环境下的名称,
    "zh": 字符串,中文环境下的名称,
    "support": 枚举型字符串,该附魔支持的物品类型,可用的类型见下表
    "min": 整数,附魔等级下限,
    "max":  整数,附魔等级上限
 }
注释注释
armor_feet靴子bow
armor_legs护腿wearable可穿戴(包括盔甲,鞘翅,头颅)
armor_chest胸甲crossbow十字弩
armor_head头盔vanishable消失诅咒可触及到的物品
armor全套盔甲均可fishing_rod钓鱼竿
digger斧头,锄头,镐,锹

weapon

trident三叉戟

breakable有耐久度的物品


实例:

{"id":"minecraft:sharpness","en":"Sharpness","zh":"锋利","support":"weapon","min":1,"max":5}


版本 enchantment_v2(1.21) 由于数据包更新,模组无法从代码中获取到具体的类型,只能获取这些物品的集合。

{
    "id": 路径型字符串,该附魔的注册名,
    "en": 字符串,英文环境下的名称,
    "zh": 字符串,中文环境下的名称,
    "min":整数,附魔等级下限,
    "max":  整数,附魔等级上限
 }





effect.jsons

版本 effect_v1

{
    "id": 路径型字符串,该效果的注册名,
    "en": 字符串,英文环境下的名称,
    "zh": 字符串,中文环境下的名称,
    "ico": 字符串,当存在'#'前缀时代表路径引用,否则为Base64编码的图片
}

实例:

{"id":"minecraft:poison","en":"Poison","zh":"中毒","ico":"#attachment/effect/poison.png"}

biome.jsons

版本 biome_v1

{
    "id":  路径型字符串,该生物群系的注册名,
    "name":  字符串,根据算法计算出的英文名字
}

由于mc中并未储存关于生物群系的I18n值,所以无法获取其名称。

实例:平原

{"id":"minecraft:plains","name":"Plains"}

dimension.jsons

版本 dimension_v1

{
    "id":  路径型字符串,该维度的注册名,
    "name": 字符串,根据算法计算出的英文名字
}

由于mc中并未储存关于维度的I18n值,所以无法获取其名称。

实例:末地

{"id":"minecraft:the_end","name":"The End"}

recipe.jsons

无固定格式,但是Json中必然存在一个键"type"对应到一个路径型字符串,由该type可对应到一个解析法则。

recipe_types/*.java(仅限1.21以下) 由于1.21的数据包更新,统一使用CODEC进行编解码。

/recipe_types/ 目录下会存在一个与该值对应的文件(冒号替换为下划线,后缀为".java"),用于给百科未知配方的导入进行参考(不一定存在,概率反编译导出错误),该文件为反编译后的该配方的反序列化类,根据该反序列化类中的fromJson方法和键名可以初步判断其用途。

但是由于反编译的原因,不过由于混淆的原因,导出的结果会差强人意,尤其是导出原版类型时,基本就没法看,但是可作为一个极为权威的参考资料。

导出数据格式-第1张图片开发环境下与发行环境下导出的差距

导出数据格式-第2张图片发行环境下模组的反序列化类



worldly导出

导出的文件是一个JsonObject

必然存在以下键

{
    "format_version": 整数,导出工具版本号,
    "minecraft_version": 字符串,Minecraft版本号
       ......
}

版本 v1

{
    "format_version": 1,
    "minecraft_version": ...
    "dimension": 路径型字符串,该维度的注册名,
    "sample": 整数,采样区块数量,
    "entries": [ 
        {   //这是单个条目
            "id": 路径型字符串,方块的注册名,
            "where": 见下文where格式,
        },
        ...
    ]
}

where格式

where的值为字符串类型,由多个条目组成。单个条目由以下格式组成,尾部由分号结束。层数从小到大排列。当中间缺省层数时,默认概率为0。

y层数(整数):概率(单浮点数,单位: %,范围:[0f,100f]) ;