在进行安装,配置之后你就可以往你的服务器里添加许多的自定义内容了,接下来你将学习到如何添加自定义内容,但是首先,我们先来了解一下 ItemsAdder 的文件大体框架
当你进入 ItemsAdder 的配置文件夹后你会看到以下文件
ItemsAdder
│ config.yml
│ ia_gui.yml
├─contents
│ └─namespace
│ ├─configs
│ │ └─config
│ └─resourcepack
│ └─assets
│ └─textures
├─lang
│ zh_cn.yml
├─output
│ generated.zip
└─storage
│ custom_fires_ids_cache.yml
│ font_images_unicode_cache.yml
│ items_ids_cache.yml
│ real_blocks_ids_cache.yml
│ real_blocks_note_ids_cache.yml
│ real_transparent_blocks_ids_cache.yml
│ real_wire_ids_cache.yml
└─cache
└─various
cache.nbt
contents 文件夹。这是贯彻整个教程的文件夹,也是整个插件的核心所在。这里保存着所有 ItemsAdder 你所添加的内容的配置。
lang 文件夹。是英文单词 language(语言)的缩写,用于存放不同语言的文字消息的地方
storage 文件夹。这是保存 ItemsAdder 一些缓存记录的数据的地方,在教程没有特别标注的地方,请不要动这里。轻则物品的 CustomModelData 值全部被打乱,重则你的资源包就因此报废了,你要花上一整天时间去修补到底哪里不小心出现问题了。(此时的你可能看不懂到底是什么,总之记得这里很危险,不要乱动,就对了)
output 文件夹。你第一次使用时可能看不到这个文件夹,它的作用将在后文揭秘。
config.yml 文件。是英文单词 configuration(配置)的缩写,用于配置插件的文件
ia_gui.yml 文件。配置 /ia 指令后打开的各种 UI 的文件。
以上 6 个文件,在你基础的配置完 ItemsAdder 以后,基本只会看 contents 文件夹内的内容了,所以整个插件并不难,需要的是前期你的耐心。
那么,很显然,contents 文件夹是我们关注的重心,所以我们还需要对它进行研究分析,请再次打开它,我们可以发现里面包括一个名字为 _iainternal
的文件夹,这是 ItemsAdder 为你提供的基础包。
从这我们似乎不能发现什么,你可以 点击这里 下载 ItemsAdder 为你提供的示例配置。
打开示例配置,我们不难发现,contents
文件夹内包含的是其他若干文件夹,这些文件夹对应一个新的概念:包,你可以做物品包、盔甲包,这些文件夹名称就是包的名称。
打开任意一个包所对应的文件夹,我们发现它由如下 2 个文件夹组成:
contents
└─magicmc
├─configs
│ └─config
└─resourcepack
└─assets
└─textures
configs 文件夹:这个包的物品配置文件所在的文件夹,一个包可以由若干物品配置文件,物品配置文件不止止是物品,还有其他内容,只是为了方便理解叫做物品配置文件,你可以在下一节快速了解一下它。
resourcepack 文件夹:这个包的资源包所在的文件夹。ItemsAdder 最终发给玩家的资源包是所有包的子资源包打包后自动生成的,这时 output 文件夹作用就体现出来了:它的作用就是存放这些包的子资源包最终打包生成的总资源包。
当然也支持更多的文件结构:
结构 1 :
contents
└── my_items
├── configs
│ ├── example.yml
│ └── example_1.yml
└── resourcepack
└── assets
└── my_items
├── models
│ └── items
│ └── example_item.json
└── textures
└── items
└── example_texture.png
⚠️ 默认且最完整的结构
结构 2 (不推荐):
contents
└── my_items
├── configs
│ ├── example.yml
│ └── example_1.yml
└── resourcepack
└── my_items
├── models
│ └── items
│ └── example_item.json
└── textures
└── items
└── example_texture.png
结构 3 (不推荐):
contents
└── my_items
├── configs
│ ├── example.yml
│ └── example_1.yml
└── assets
└── my_items
├── models
│ └── items
│ └── example_item.json
└── textures
└── items
└── example_texture.png
结构 4 (不推荐):
contents
└── my_items
├── configs
│ ├── example.yml
│ └── example_1.yml
└── my_items
├── models
│ └── items
│ └── example_item.json
└── textures
└── items
└── example_texture.png
我们先不着急 configs 文件夹包括的物品配置文件的学习,因为下面我们重点学习的就是这个,在此之前,我们先来把目光投放到 resourcepack 文件夹身上。我们需要了解一个新的概念,我们称为 namespace,中文意思为命名空间。
我们随意打开一个网上下载的资源包,发现一进入压缩包预览页面,映入眼帘的往往是一个 minecraft 文件夹,这就是 Minecraft 原版自身给自己的命名空间,游戏自身会在这个命名空间内找到自己所要的纹理、模型、音效等等。 而我们自己也可以创建一个新的命名空间,把自己想要增加的纹理、模型、音效等等放入进去,更好的管理它们,在需要修改、删除它们时能快速定位到其所在目录。
在上文我们已经介绍了包的概念,在示例配置中,各个包下的 resourcepack 文件夹正是子资源包,而打开这个文件夹映入眼帘的正是 namespace!
首先是包的作用。例如,你可以把一些武器放在一起,再把另外的盔甲放在一起,这时,包的作用就是分类了。ItemsAdder 并不限制你的包到底是怎么区分的,但很显然在这里,推荐使用 物品分类 进行配置。
这些由你想设置的包的名称和各包下 resourcepack 文件夹下的 namespace 不必一模一样,而且一个包也可以有多个 namespace,但在本教程为了培养良好习惯,全部默认只能一样且一一对应。namespace 用于内部管理,而玩家无法看到,所以你不必填写中文,也不能使用中文,只能是 小写英文、数字和下划线 组成。
在使用插件各个指令,或者配置 ItemsAdder 内物品,乃至与 ItemsAdder 挂钩(兼容)的插件时,我们在填写 ItemsAdder 物品的名称时,非常建议你写 namespace:id 的格式,例如 weapon:starter_sword。namespace 即是文件夹的名称,id 即是物品的ID。
一个资源包由任意命名空间组成,原版自身使用了 minecraft 命名空间,即一打开资源包出现的 minecraft 文件夹。 各命名空间下常用的文件夹是: models 文件夹:存放模型文件的地方。 textures 文件夹:存放纹理文件(即材质图片)的地方。 sounds 文件夹:存放音效文件的地方。 lang 文件夹:存放语言文件的地方。 ··· ··· ··· ···