教程:制作附加包/物品

来自Minecraft基岩版开发Wiki
物品
系列教程
所属系列
难度
初级
前置知识
适用版本
国际版
实践设备
所需软件

概述

自1.14版本起, Mojang 正式向开发者提供了自定义物品的相关接口。但由于当时 Mojang 工作室在 Addon 方面的开发重心仍在于开放自定义实体的相关接口上,故物品接口在很长的一段时间里都处于“极不完善”的状态。直至1.16.100.56 beta 版本,自定义物品相关接口才得到了大幅增强,同时自该版本起, Mojang 摒弃了资源包中的物品配置文件,使物品的定义更加便捷且架构更加合理。

配置

您可在行为包中的 items 文件夹下新增自定义的物品配置文件。其数据结构如下:

{
  "format_version": "1.16.0",
  "minecraft:item": {
    "description": {
    }, //描述
    "components": {
    }, //组件
    "events": {
    } //事件
  }
}

如上,物品配置文件由描述、组件与事件三部分构成。

描述

描述 (description) 对象储存了用于描述该物品的基础信息,其数据结构如下:

属性名称 数据类型 描述
category String 定义物品在创造栏中的分类。可设置的值有:equipment(装备), items(物品), natural(自然), block(建筑), commands(不可通过指令获取)
identifier String 物品的标识符,形如 namespace:identifier 。其中:namespace 为命名空间,若非重写原版物品,不可使用 minecraft 作为自定义物品的命名空间;identifier 为该物品名称。
is_experimental Boolean (可选)决定了该物品是否为实验性物品。默认值为 false 。若此属性值为 true ,则该物品需开启实验性玩法才可获得。

组件

组件(components)对象决定了该物品的功能属性,您可选择并添加您需要的组件属性。

事件

事件(events)对象储存了该物品可能用到的所有事件。

新版写法示例

适用版本:1.16.100.59 beta 版本以上

以下代码定义了一个耐久为400,伤害为9的剑,并将其添加至了剑的创造物品栏分类中

{
  "format_version": "1.16.100",
  "minecraft:item": {
    "description": {
      "identifier": "example:example_sword",
      "category": "equipment"
    },
    "components": {
      "minecraft:max_stack_size": 1,
      "minecraft:hand_equipped": true,
      "minecraft:durability": {
        "max_durability": 400
      },
      "minecraft:creative_category": {
        "parent": "itemGroup.name.sword"
      },
      "minecraft:icon": {
        "texture": "example_sword"
      },
      "minecraft:damage": 9,
      "minecraft:weapon": {
        "on_hurt_entity": {
          "event": "example:damage"
        }
      }
    },
    "events": {
      "example:damage": {
        "damage": {
          "type": "magic",
          "amount": 1,
          "target": "self"
        }
      }
    }
  }
}

你知道吗

  • 自定义物品的Json文件名称并不要求必须与物品ID相同。

< 纹理 | 物品组件 >