# 总体配置结构了解 (v.3.3.0 版本以前)

在阅读完 **首次使用** 一章后，恭喜你来到了第二章。在本章你将基础地掌握 **ItemsAdder** 的一些基础知识。

### ItemsAdder 插件内的大概框架

在此之前，我们需要了解 **ItemsAdder** 文件夹内的大概框架。请注意，是大概。各个文件的具体作用，将在后文陆续揭秘，此时的你不宜了解太多。

我们会发现该文件夹下有以下部分组成：

* **data** 文件夹。这是贯彻整个教程的文件夹，也是整个插件的核心所在。这里保存着所有 **ItemsAdder** 你所添加的内容的配置。
* **lang** 文件夹。是英文单词 **language**（语言）的缩写，现在不用我说，你也知道这是干什么的吧。
* **storage** 文件夹。这是保存 **ItemsAdder** 一些缓存记录的数据的地方，在教程没有特别标注的地方，请不要动这里。轻则物品的 **CustomModelData** 值全部被打乱，重则你的资源包就因此报废了，你要花上一整天时间去修补到底哪里不小心出现问题了。（此时的你可能看不懂到底是什么，总之记得这里很危险，不要乱动，就对了）
* **config.yml** 文件。是英文单词 **configuration**（配置）的缩写，同样不用我说了。
* **converter.yml** 文件。将远古版本的 **ItemsAdder** 数据转换成现在版本的 **ItemsAdder** 数据的配置文件。这里的“远古版本”也是很老的时候了，那时候估计你都不知道有这么个插件，所以就不用管它。
* **ia\_gui.yml** 文件。配置 **/ia** 指令后打开的各种 **UI** 的文件。

以上 **6** 个文件，在你基础的配置完 **ItemsAdder** 以后，基本只会看 **data** 文件夹内的内容了，所以整个插件并不难，需要的是前期你的耐心。

### data 文件夹内的大概结构

那么，很显然，**data** 文件夹是我们关注的重心，所以我们还需要对它进行研究分析，请再次打开它，我们可以发现里面包括：

* **items\_packs** 文件夹。这里放置的是 **ItemsAdder** 物品（和其他各种内容）配置的地方。
* **resource\_pack** 文件夹。这里放置的是 **ItemsAdder** 的资源包，你的物品贴图、方块纹理等都应该存放在这里。

### namespace 概念理解

别着急打开 **items\_packs** 文件夹，再次之前，我们需要了解一个新的概念，我们称为 **namespace**。

从英文单词 **items packs** 中分析，**item** 的意思为物品，**pack** 的意思为包，翻译过来就是物品包。所以，这时我们仅从文件夹的名称就可得知，**ItemsAdder** 的各个物品（或者其他各个内容）都是以包的形式，也就是集合形式分开的。

例如，你可以把一些武器放在一起，再把另外的盔甲放在一起，这时，包的作用就是分类了。**ItemsAdder** 并不限制你的包到底是怎么区分的，但很显然在这里，笔者推荐你使用“物品分类”进行配置。

这些由你想设置的包的名称即 **namespace**，它用于插件内部管理，而玩家无法看到，所以你不必填写中文，也不能使用中文，只能是 **小写英文、数字和下划线** 组成。

我们打开 **items\_packs** 文件夹，你会发现诸如 **mcguis** 这样的文件夹，它们正是各个包的名称，和它们下面的配置。

在使用插件各个指令，或者配置 **ItemsAdder** 内物品，乃至与 **ItemsAdder** 挂钩（兼容）的插件时，我们在填写 **ItemsAdder** 物品的名称时，非常建议你写 `namespace:id` 的格式，例如 `weapon:starter_sword`。**namespace** 即是文件夹的名称，**id** 即是物品的ID。

打开 **resource\_pack/assets** 文件夹下也有一些与包名称相一致的文件夹，这里的文件夹名称不一定必须与 **items\_pack** 内一一对应，只要你的物品配置内所写的文件路径填写正确。但为了资源包的管理方便，还是建议一一对应。在本篇教程所给的示例中，将统一是一一对应的格式。

关于 **resource\_pack** 文件夹的各命名空间下的具体结构，将在后文中陆续介绍。
