BE教程

附加包教程:55.物品目录

Cat_A***Lv.4 高级会员 发表于 2024-12-11 · 最后回复 2025-2-17 IP:天津 8,068 3
AI 速览2026-09-26 00:42 生成

基岩版附加包教程:用物品目录自定义创造物品栏顺序与分组

这是附加包系列教程第五十五期,讲解基岩版 1.21.60.23 起新增的物品目录功能。帖子先说明方块物品的生成与替换机制,再介绍如何在行为包中创建 item_catalog 文件夹和 crafting_item_catalog.json,通过 categories、groups、items、group_identifier 等字段调整创造模式物品栏与配方书中的物品顺序并创建分组,还列出了可用的原版物品组 ID 及教育版分组的限制。适合正在制作基岩版附加包、希望整理自定义物品与方块展示顺序的开发者阅读。

  • 仅适用于基岩版 1.21.60.23 及以后版本
  • 需要开启实验性玩法
  • 带星号的原版分组为教育版独有,基岩版不可用
  • 自定义物品组需在语言文件中定义名称,否则显示 ID 字符串
本卡片由 AI 阅读本帖后生成,可能存在疏漏,请以帖子正文为准。
本帖最后由 Cat_Anchor 于 2025-6-7 15:33 编辑

自定义物品目录教程
提示:本教程仅适用于基岩版 1.21.60.23 及以后的版本,而且要开启实验性玩法。


前言
在 1.21.60.23 中,官方加入了暑假时提及的“物品目录”功能,允许我们定义创造模式物品栏和配方书中自定义物品和方块的顺序,并为它们创建分组。
也就是说,以后的创造模式物品栏不会因为很多新物品而变得无比混乱了!

但在正式开始之前,我们要首先明白方块是如何进入创造模式物品栏的。
方块物品
我们获得一个方块时,真正获得的其实是一个代表这个方块的物品。那为什么我们只需要在 blocks 文件夹中定义方块,而无需在 items 文件夹中定义对应的物品呢?因为方块物品默认是由基岩引擎自动创建的。

如果这个物品和方块的功能不一致,那么会用 item. 前缀来区分方块和方块物品,比如 minecraft:camera 和 minecraft:item.camera。

默认情况下,方块物品是不能修改的。但是,如果我们创建一个与方块 ID 相同的物品,并设置 minecraft:block_placer 组件的 replace_block_item 字段为 true,那么这个物品就会取代默认的方块物品。
  1. {
  2.   "format_version": "1.21.60",
  3.   "minecraft:item": {
  4.     "description": {
  5.       "identifier": "complementary:acacia_crafting_table"
  6.     },
  7.     "components": {
  8.       "minecraft:block_placer": {
  9.         "block": "complementary:acacia_crafting_table",
  10.         "replace_block_item": true
  11.       }
  12.     }
  13.   }
  14. }
复制代码

这个物品会继承方块的 menu_category 字段。同时,如果不添加 minecraft:icon 组件,这个物品还会显示为对应方块。
物品目录
现在我们可以开始了。首先,需要在行为包根目录下创建 item_catalog 文件夹,打开之后新建 crafting_item_catalog.json 文件。打开这个文件,输入以下内容。
  1. {
  2.   "format_version": "1.21.60",
  3.   "minecraft:crafting_items_catalog": {
  4.     "categories": [
  5.       {
  6.         "category_name": "construction",
  7.         "groups": [
  8.           {
  9.             "group_identifier": {
  10.               "icon": "minecraft:oak_planks",
  11.               "name": "minecraft:itemGroup.name.planks"
  12.             },
  13.             "items": [
  14.               "namespace:identifier"
  15.             ]
  16.           }
  17.         ]
  18.       }
  19.     ]
  20.   }
  21. }
复制代码

这里,categories 是一个列表,其中有若干个对象。每个对象都有一个 category_name 字段,指定要修改哪个选项卡。以下是 category_name 的所有可用值和描述。
字段描述
construction建筑
equipment装备
items物品
nature自然

之后,我们可以在 groups 字段中指定物品顺序。groups 是一个列表,其中每个对象都可以指定一些物品的顺序,或者将一些物品变成一个物品组。

我们来看每个对象中的字段。

items:这是定义物品顺序的字段,是一个字符串列表。每个字符串都是一个物品 ID,物品会按照列表中从上到下的顺序出现在创造模式物品栏中。这是必需字段。

group_identifier:如果要创建一个新的物品组,或者要将自定义物品加入原版的物品组,我们就需要这个字段了。它是可选的,包含两个字段。

name:可以填写原版已有的物品组的 ID,或者自定义新的 ID。这两种写法都需要有命名空间。如果填写原版 ID,那么会将 items 中定义的物品按照顺序添加到原版物品组的末尾。如果填写自定义的 ID,那么会创建一个新的物品组。这时,这个 ID 也是新物品组的本地化键名,需要在语言文件中定义这个物品组的名称,否则会显示这个字符串。

icon:这是物品组的图标。需要填写物品 ID,填写后使用这个物品作为物品组的图标。
旧字段
仅凭 crafting_item_catalog.json 文件,我们就可以定义物品在创造模式物品栏和配方书中的位置了。那方块和物品原本的 menu_category 字段呢?

目前它还能用于将物品添加到原版组里,也能将物品放进选项卡而不在组内,但是无法保证顺序,而且也似乎无法将物品放进自定义组里。
group 字段的值现在也需要命名空间了,与新标准统一。
原版 ID
截至 1.21.60.23,以下是所有可用的原版物品组 ID 和名称。
总结
这一期是关于物品目录的介绍。用这个,我们就可以获取一些正常无法获取的隐藏物品了,实现如下效果。


回复 3 最早 最新 只看楼主
MC*** Lv.3 中级会员
2025-2-17 09:19:03 · 来自手机 IP:广东省
本帖最后由 MC平方 于 2025-2-17 10:07 编辑

这个组件在基岩正式版1.21.60.10中启用!
Screenshot_2025_0217_095003.jpg
不需要开启任何实验性玩法,实测创建自定义物品分类组成功!测试版本1.21.60.10基岩正式版。
那么问题来了,这个自定义分类组的命名在语言文件中的格式是什么?
物品是item.前缀:命名空间=
那么这个自定义分类组的是?
4# 2025-2-17 09:19:03 回复 收起回复
您需要登录后才可以回帖 登录 | 立即注册
本版积分规则