魔咒提供器定义格式

来自Minecraft Wiki
(重定向自魔咒提供器
跳转到导航 跳转到搜索
本文章所述内容仅适用于Java版

魔咒提供器定义文件魔咒提供器(Enchantment Provider)在数据包中的数据驱动定义文件。

定义格式[编辑 | 编辑源代码]

魔咒提供器在游戏内使用ENCHANTMENT_PROVIDER注册表,数据包路径为enchantment_provider,即所有魔咒提供器定义文件都需要在data/<命名空间>/enchantment_provider目录内定义。

魔咒提供器定义文件使用JSON格式,并具有下列结构:

  • NBT复合标签/JSON对象 根对象
    • 字符串*type:魔咒提供器类型。
      如果字符串typeby_cost,则根据附魔等级进行附魔
    • 字符串NBT列表/JSON数组*enchantments:这次附魔过程中可选的魔咒。可以为一个魔咒的命名空间ID或一个魔咒标签,或一个魔咒ID的数组。
    • 整型NBT复合标签/JSON对象*cost:这次附魔过程使用的附魔等级。
      如果字符串typeby_cost_with_difficulty,则根据难度计算附魔等级进行附魔。
    • 字符串NBT列表/JSON数组*enchantments:这次附魔过程中可选的魔咒。可以为一个魔咒的命名空间ID或一个魔咒标签,或一个魔咒ID的数组。
    • 整型*max_cost_span:(0≤值≤10000)由难度影响的附魔等级调节值。
    • 整型*min_cost:(1≤值≤10000)最小附魔等级。设min_costn,当前副区域难度dmax_cost_spanm,则最大附魔等级为n+md
      如果字符串typesingle,则直接添加指定魔咒,等级随机。
    • 字符串*enchantment:(命名空间ID)要添加的魔咒。
    • 整型NBT复合标签/JSON对象*level:魔咒的等级。

定义行为[编辑 | 编辑源代码]

魔咒提供器定义数据仅在服务端启动时被加载一次,使用/reload命令不可以使魔咒提供器定义被重新加载,而必须重启服务端。

魔咒提供器是游戏选取魔咒附加到物品上的一种方式。由于魔咒提供器的调用被硬编码无法修改,因此真正对游戏行为有影响的只有游戏内置的魔咒提供器。数据包可以修改内置的魔咒提供器,而自定义的魔咒提供器尽管会被解析,但无任何作用。

原版内置的魔咒提供器与它们的用途如下:

命名空间ID 用途
enderman_loot_drop 末影人死亡时计算手中拿着的方块的掉落物使用的“虚拟工具”钻石斧
mob_spawn_equipment 生物自然生成时身上的装备
pillager_spawn_crossbow 掠夺者生成时主手槽位内的弩
raid/pillager_post_wave_3 在袭击波次3和4的掠夺者主手槽位内的弩
raid/pillager_post_wave_5 在袭击波次不小于5的掠夺者主手槽位内的弩
raid/vindicator 在袭击波次小于5的卫道士主手槽位内的铁斧
raid/vindicator_post_wave_5 在袭击波次不小于5的卫道士主手槽位内的铁斧
trades/<生物群系>_<职业>_<装备>_<等级> 启用“村民交易的平衡性调整”实验性内容后,指定生物群系、指定职业、指定等级的村民售卖的指定装备

历史[编辑 | 编辑源代码]

Java版
1.2124w18a加入了魔咒提供器及魔咒提供器定义格式。

导航[编辑 | 编辑源代码]