本篇教程由作者设定未经允许禁止转载。

前言

titles模组自定义称谓完全依赖于进度系统,不能脱离进度系统设置称号,因此若要自定义称谓,你需要弄清楚原版、模组的进度ID,或是借助Triumph自行添加进度。如何查询进度,可在MC的WIKI等查到原版的进度ID;若不能从模组的WIKI、CF等地方查到进度ID,建议使用

/advancement grant 玩家ID from 此处用TAB填充指令

的方式将所有进度ID输出在latest日志中进行查看,但缺点是很难分辨ID对应的进度是什么。

配置文件详解及修改

config\Titles文件夹中会生成配置文件及自定义文件,此处只讲解用得上的。

配置文件用途

titles_config文件

此文件只有一个功能,即是否开启掉落战利品碎片,而该碎片可在游戏中购买称谓。建议关闭此功能,因为titles的作者并未在lang文件中设置需要购买的称谓的key导致无法汉化购买的称谓。

archive文件

用于设置模组默认设置中需要购买的称谓的ID

minecraft文件

存储了MC原版的进度ID的配置;内部只有titles作者选取的进度而并非全部进度。

titles文件

存储了titles模组本身自带的进度系统的信息。

配置文件详解

文件命名

titles模组非常特别的一点就是,文件的命名有极为严格的要求,不可随意命名。命名应为进度ID的根ID。例如,原版中怪物猎人进度的ID为minecraft:adventure/kill_a_mob,若你要为它设置一个称号,那么你要新建一个名为minecraft的json文件;若你要为模组,例如暮色森林的进度添加称谓,则需要将json文件命名为twilightforest。

称谓注册——以minecraft文件为例

打开minecraft文件,可看到如下代码,本人节选了部分代码进行展示:

{
  "COMMON": [
    "story/deflect_arrow",
    "story/enchant_item",
    "adventure/kill_a_mob",
    "adventure/trade",
    "adventure/shoot_arrow",
    "nether/brew_potion",
    "end/kill dragon"
  ],
  "UNCOMMON": [
    "story/cure_zombie_villager",
    "adventure/totem_of_undying",
    "nether/create_full_beacon",
    "end/respawn_dragon",
    "end/elytra"
  ],
  "RARE": [
    "husbandry/break_diamond_hoe",
    "adventure/kill_all_mobs",
    "adventure/sniper_duel",
    "nether/all_potions",
    "nether/all_effects"
  ]
}

分类的意义:COMMON:稀有度低;UNCOMMON:稀有度中等;RARE:稀有度高。每个分类下,使用"","","","","","",""的方式填写内容,""中填写的是进度ID中除了根ID之外的内容,并非整个进度ID

以第5行的怪物猎人进度为例,原版的ID为minecraft:adventure/kill_a_mob,由于json文件已命名为minecraft,此处填写的ID则为

adventure/kill_a_mob

这是此模组最为特殊的地方。按照此方法,将自己需要添加的进度自行分类进COMMON、UNCOMMON、RARE三个稀有度或新建json为其他mod添加称谓;也可删除预设称谓进行更一步的精简。

若使用了triumph模组自定义进度,此处方法也一样,但如果不懂如何获取ID,可参考开头的方法,或参考本人的triumph教程。

填写完成后保存,重启游戏。若填写出现问题,则游戏会在启动过程中崩溃。若可以正常启动,那么现在便完成了将进度在titles模组中注册的操作。此时你可能还是无法看到新的称谓,使用

/advancement revoke 玩家ID everything

指令移除所有进度,再用

/advancement grant 玩家ID everything

指令重新添加进度,这样便可查看自行添加的进度了。

称谓注册——以archive文件为例

archive文件不同于minecraft文件,它本身是titles作者自己设置的称谓,里面填写的是称谓的名字而非进度ID。这个文件是给模组作者留下来的一个范例,需要模组作者参考wiki进行API接驳的方式进行注册,然后使用类似此json文件的方式设置称谓。此方法适用性较低

语言配置

完成注册之后,最后一步便是为称号添加具体的名称,也可叫做翻译。

首先需要找到lang文件夹,使用压缩文件打开模组,在asset文件夹中找到lang文件。因为此mod无翻译,因此你只能找到en_US这个英文翻译。将其解压出来,修改为zh_CN。修改之后打开,可参考本人的汉化进行基础功能汉化。

# Configuration (+Keybindings)
keybind.titles.openTitleSelection=打开称谓选择界面

# GUI (+Container)
gui.titles.cancel=关闭页面
gui.titles.confirm=确认称谓
gui.titles.random=随机装备称谓
gui.titles.none=移除称谓
gui.titles.purchase=购买称谓
gui.titles.close=关闭页面
gui.titles.titleselection.empty=解锁进度来获取称谓
gui.titles.titlearchive.empty=你已经购买了所有能获取的称谓了

# Commands
commands.titles.usage=/titles <command>

# Entities

# Items
itemGroup.titles=称谓
item.titleArchive.name=称谓购买书
item.archiveFragment.name=称谓碎片

翻译之后,在此文件最下方添加汉化。汉化添加的方式,以triumph为例。假如我使用triumph自定了一个进度,其路径在script/triumph/test/test.txt,那么我在lang文件中应该这样输入:

title.triumph.test.test=测试称号

如果你自修阅读了之前的内容,这里便非常好解释了。开头必须是title.,后续只需将进度ID中的冒号、斜杠等替换为点,如这段代码所示,便可将对应的称号进行汉化。将修改好的zh_CN文件复制入titles中的lang文件夹中,重启游戏即可。