快速起步(可能)
本条目可作为了解如何开始制作自己的Patchouli手册的快速指导,阅读并仔细跟随文中说明使用!
安装 Patchouli
对于模组作者
你可以直接将其作为支持库加入到你的模组中,或者直接将其放在你的工作区的 mods 文件夹中。首选方法是使用 maven,您可以在Patchouli在GitHub上的仓库中的README中;
对于本模组使用者或整合包作者
最好是通过“一般”的模组下载渠道下载本模组以保证你的设备的安全。
定位你的patchouli_books目录
对于模组作者
你添加的手册和它们的内容都会存放在你的patchouli_books目录下,所以你需要找到它。
对于整合包作者
可以使用外部文件夹 .minecraft(/versions/{版本名称}/)patchouli_books,它位于 mods 文件夹旁边。如果该文件夹不存在,请自行创建。对于模组作者,它将位于 /data/_YOURMODID_/patchouli_books 中,你需要手动创建它。同时,你还需要创建一个镜像的 /assets/_YOURMODID_/patchouli_books 目录。
对于mod制作者,你需要在/assets/_你MOD的modid_ 或 /data/_你MOD的modid_ 目录下新建一个patchouli_books文件夹,它不会自动生成。
创建书籍文件夹结构
一旦你找到 patchouli_books 文件夹,就可以为你的书籍命名了。只允许使用小写字母(a-z)和下划线(_)。这个名字是手册的内部名称,我们建议你让它独特一些。对于模组来说,应该根据手册的用途命名(例如,Botania 的词典)。对于整合包,可以将其命名为包含整合包名称的名称,例如 crucial_2_guide_book。确定好名称后,在 patchouli_books 中创建文件夹和文件,结构应该像这样:
└── patchouli_books
└── your_book_name
├── book.json
└── en_us
├── entries
│ └── test
│ └── test_entry.json
├── categories
│ └── test_category.json
└── templates
你可以添加任意数量的手册,甚至是同一Mod或同一整合包下也是允许的。
通常每一本手册都应该有不同的ID。
在游戏内,每一本手册都会以"你Mod的modid:你书的内部名"或"patchouli:手册内部名"格式的ID注册,后者的手册通常是作为整合包内容加载的。
需要注意的是,你创建的 "en_us" 文件夹代表着你正在创建一本英语版本的手册。
"en_us" 文件夹会一直作为手册的核心内容加载,所以尽管你不是很习惯用英语的话也要把主内容放进这里面。
任何翻译者都可能需要自己创建它们使用的语言并重写任意它们需要的文件。
根据游戏语言变化,它们会自动载入。
翻译者注意:请不要在其他语言文件夹里加入并非重写于en_us的文件。
填写book.json
用你最喜欢的编辑器打开你的book.json,然后将下面的内容填进去:
{
"name": "BOOK NAME",
"landing_text": "LANDING TEXT",
"version": 1,
"creative_tab": "minecraft:tools_and_utilities",
"use_resource_pack": true
}"BOOK NAME"是你的书籍会显示出来的名字,"LANDING TEXT"在游戏内会显示在手册目录的左侧页面。
version对象里会显示这是手册的第几版。
每次更新手册的时候,你应该也更新一下手册的版本号。
当然,作为Modder来说同样可以使用本地化条目关键字来设置名字和landing text。
"use_resource_pack"对于在模组中声明的书籍,必须设置为 true,但对于整合包中声明的书籍来说这是可选的(官方wiki页面并未指明在什么位置声明书籍)。设定特殊定位键要求书籍的某些内容通过资源包加载[请参阅步骤 5(未翻译)]。
4. 游戏内查看编辑效果
打开游戏来检查一下你的书在不在游戏里。除非你特别设置过,它应该就会在工具与实用工具[Tools and Utilities]("creative_tab"的内容会对其产生影响)创造栏里面,同时你还可以通过搜索来找到它。
打开书后,应该会看到一个空白的封面页面(book.json的内容会对其产生影响)。

如果找不到的话,检查一下patchouli是否成功加载或log文件里面有没有错误。
此后的所有内容都可以在不关闭游戏的情况下热加载,因此在进行进一步编辑时可以保持游戏打开状态来仅通过点击铅笔图标来刷新以查看效果。
添加详细内容
是时候为你的手册加入些干货了。
转到您的图书内容文件夹。如果 use_resource_pack 设置为 true,则这将是资源包(或 mod 资源)内的 /assets/_YOURBOOKNAMESPACE_/patchouli_books/_YOURBOOKNAME_。否则,它与 book.json 位于同一文件夹。
打开你手册文件夹内的en_us文件夹,按照下面的内容新建文件夹和文件:
└── patchouli_books
└── your_book_name_change_me
├── book.json
└── en_us
├── entries (文件夹)
│ └── test (文件夹)
│ └── test_entry.json (空文件)
├── categories (文件夹)
│ └──test_category.json (空文件)
└── templates (空文件夹)
打开test_entry.json和test_category.json,按照下面的内容补充进去:
模组而言
test_entry.json:
{
"name": "Test Entry",
"icon": "minecraft:writable_book",
"category": "your_book_namespace_change_me:test_category",
"pages": [
{
"type": "patchouli:text",
"text": "This is a test entry, but it should show up!"
}
]
}test_category.json:
{
"name": "Test Category",
"description": "This is a test category for testing!",
"icon": "minecraft:writable_book"
}整合包而言
test_entry.json:
{
"name": "Test Entry",
"icon": "minecraft:writable_book",
"category": "patchouli:test_category",
"pages": [
{
"type": "patchouli:text",
"text": "This is a test entry, but it should show up!"
}
]
}test_category.json:
{
"name": "Test Category",
"description": "This is a test category for testing!",
"icon": "minecraft:writable_book"
}您需要编辑测试条目中的“category”键以获得正确的命名空间
保存文件,然后返回游戏内并打开您的书。单击在左下角的铅笔。它将重新加载书籍内容,您应该看到刚刚定义的类别和输入的内容以及创建的书页。
给整合包作者的重要提醒
对于 .minecraft/patchouli_books 中的书籍/类别/条目的 ID(即 modpack 书籍),命名空间始终为 patchouli。
例如,对于上述结构,您需要使用以下 ID:
Book: patchouli:_YOURBOOKNAME_
Category: patchouli:test_category
Entry: patchouli:test_entry
(其中官网wiki中还有一个部分,展示了你需要注意的一些内容,但原文为页面链接,此部分内容请自行到官网查看)

自定义书籍使用方式
我们反复提醒!
如果您是整合包作者,则您的书的名称空间是您的Mod ID,然后如果您的文件夹称为“ coolbook”,则您的书ID是您的书名空间:Coolbook;
如果您是模组作者,则您的书的名称空间必须是Patcholi。
以下如何使用书籍的一些示例。
CraftTweaker
<patchouli:guide_book>.withTag({"patchouli:book": "YOURBOOKID"});或者使用指令
/ct hand
Vanilla Recipes/Advancements
"item": "patchouli:guide_book",
"nbt": {
"patchouli:book": "YOURBOOKID"
}
一些提示
对于整合包作者,如果您想使用自己的图像,纹理,声音或其他材质,则需要一个模组来加载它们,例如开放式加载。
要自动将您的书授予新玩家,请参阅Giving Books to New Players。
您需要重新加载游戏以加载book.json,而不是书籍内容。
书籍内容纯粹是客户端加载,而书本文件由服务器加载。
你没必要把你的项目文件夹中的他们相对应的类别,但它有助于理清文件!
如果您是模组作者,无需任何代码以及依赖项。如果您将文件放在正确的位置,Patchouli 将自动找到您的文件并加载。
附录:文件结构示例
对于模组作者
您的src/main/resources/应该像这样:
.
├── assets
│ └── your_mod_id_change_me
│ └── patchouli_books
│ └── your_book_name_change_me
│ ├── en_us
│ │ ├── categories
│ │ ├── entries
│ │ └── templates
│ └── zh_cn
│ └── entries
└── data
└── your_mod_id_change_me
└── patchouli_books
└── your_book_name_change_me
└── book.json
对于模组作者,或修改模组书籍(首页)的整合包作者
如下述资源包含的文件,你想添加或复盖的目标书籍:
.
└── assets
└── mod_id_of_the_book_change_me
└── patchouli_books
└── the_book_name_to_modify_change_me
├── zh_cn
├── categories
├── entries
└── templates
注意:对于模组作者,使用资源包覆盖内容时请小心;
如果你在寻找如何修改书籍首页内容,教程见如何解除模组对手册的锁定。
对于自定义书籍的整合包作者
您的.minecraft应该看起来像这样:
.minecraft
(└── /versions/{版本名称}/)
└── patchouli_books
└── your_book_name_change_me
├── book.json
└── en_us
├── categories
└── entries


