-
-
Notifications
You must be signed in to change notification settings - Fork 5
zh_cn_configs
配置文件的内容应该如下所示:
{
"mods": [
"example"
],
"classes": [],
"apply_mods": [],
"debug_mode": {
"is_enable": true,
"use_cache": true,
"export_class": false,
"output_format": "<source> -> <target> in <class> [<ordinal>] | <info>",
"output_mode": 0
}
}
接下来,我们会一个个介绍这些键以及它们对应的值的意义。
可以看见,第一个是模块(即mods),它指示VP在加载时应该载入哪些模块(补丁)。
它是一个数组,你可以在其中增加别的文件,这些文件是相对于\config\vaultpatcher_asm\
这个路径下的,而且不需要后缀名。
模块的加载顺序是由上到下,也就是排在第一个的模块会第一个被加载,其余同理。
全局类指定了在补丁文件中有哪些类是将要进行替换的,它同样是一个数组,并且它是全局的,这意味着如果你在此写入了一些类。那么这些类就没必要再写入模块中。 (注意,VP不会检查这些类,所以请在编写中确保它们没有重复项!)
作用模组指定了有哪些模组中的类要将被替换,其中的每个字符串对应它在mods
文件夹下的那个模组,不需要加入后缀名.jar
。
(注意,它是以文件名作为标准来搜索模组,而不是modid
)
它相当于遍历该模组的jar中的类,并将这些类添加到全局类中,但它的优先级高于全局类。
这可能会导致资源浪费,并造成没必要的性能损耗,所以尽量不要使用它。该功能无法遍历jar-in-jar
。
对于上文提到的所有内容,我们有:
调试模式是给配置编写者进行调试的,你需要将其中的is_enable
设为true
以开启调试模式。
其中的output_mode
是一个整数,目前有且仅有两个值1
和0
。当被设为1
时,无论该替换是否成功,都会输出一次调试信息;当被设为0
时,只有当替换成功时(原值不等于替换后的值),才会输出调试信息。
调试信息由output_format
决定,输出时其中的占位符(用尖括号括起来的)将被替换为指定的值。
占位符详情见下表:
-
<source>
代表原值,即原先的文本。 -
<target>
代表替换后的值。 -
<method>
代表该替换是使用哪种方法,以ASMTransform
开头的为ASM
替换,否则则是Font/TextComponent
的类名加方法名,意味着这是动态替换。 -
<class>
代表该替换是在哪些类中进行替换,如果是动态替换,那么他会输出当前的堆栈,否则是原值所在的类。 -
<info>
代表替换时的TranslationInfo
,它包含pairs
和target_class
信息。 -
<ordinal>
代表此替换操作的操作序数(仅ASM替换)
export_class
设为true
以导出替换后的类文件。
use_cache
决定VP是否优先使用已缓存替换后的缓存类文件,设为true
以开启优先使用。推荐在编写配置时关闭,这样每次改动模块内容都会即时应用,而不需要更改缓存。