概述
这是一个高度可定制但极其轻量级的模组,它可以允许整合包制作者在游戏中创建许多自定义默认选项。它不仅支持原版的 options.txt 文件,而且还支持游戏中被配置的模组,例如 旅行地图 和 FTB 实用工具。请注意,当游戏被加载,模组不会产生损耗,并且会在开始之前释放所有使用的内存,因为它只在加载屏幕期间使用。
意图
对于整合包制作者来说,在他们的整合包中提供 options.txt 等文件通常是个坏主意,因为每次整合包更新时,用户配置的选项都会被整合包附带的文件版本覆盖。这对玩家来说是非常令人沮丧的,当他们花时间设置控制键时,却发现在更新整合包时设置被覆盖了。然而,当整合包不提供 options.txt 等文件时,整合包通常会出现许多按键冲突,这常常会给玩家带来混乱。
这个模组旨在纠正这个问题,通过将自定义配置文件复制到游戏目录中,但仅当该文件不存在时。从本质上讲,整合包作者的自定义选项文件仅在首次启动整合包时创建,并且整合包更新不会试图覆盖任何可能由玩家进一步自定义的现有选项文件。
此模组不是为 Config 目录中的标准配置文件设计的,而是为玩家设计的,即玩家在游戏中设置的选项。例如,设置默认的旅行地图主题、图标或地图大小,更改默认的按键绑定,以及默认情况下无法设置的选项。
它有什么“更多”之处?
已经有一个非常好的模组叫做 Default Options ,它在创建默认 options.txt 方面做得很好。然而,在游戏中配置旅行地图等 Mod 也同样遇到了与 options.txt 的问题:整合包可以包含自定义旅行地图的配置文件,但如果用户调整旅行地图配置,未来的整合包更新将覆盖这些用户设置。
尽管这个模组的灵感来自 Default Options,但它的主要目标是支持整合包中旅行地图的配置,因为作者发现许多旅行地图默认值对整合包来说不是最优的。
这个模组还可以配置为在服务器、客户端或两者上复制特定的默认文件,从而允许整合包在专用服务器上创建默认世界生成选项(即 server.properties 文件)。
配置方法
这个模组的配置文件(默认情况下不生成)是基于 JSON 的,示例文件如下:
[
{
"sourceFilePath": "options.txt",
"destinationFilePath": "options.txt",
"clientSide": true,
"serverSide": false
},
{
"sourceFilePath": "journeymap.core.config",
"destinationFilePath": "journeymap/config/5.2/journeymap.core.config",
"clientSide": true,
"serverSide": true
},
{
"sourceFilePath": "journeymap.minimap.config",
"destinationFilePath": "journeymap/config/5.2/journeymap.minimap.config",
"clientSide": true,
"serverSide": false
}
]
请注意,JSON 必须有效且无误,否则模组将提示异常并停止加载。这是为了让整合包作者能够快速更正 JSON,而无需等待游戏完成加载,但如果配置文件不存在,模组将记录这一事实,自行卸载,然后允许游戏继续加载。
路径结构
CurseForge 使用的 Windows 上典型的路径结构其示例可能是:
C:\Users\seahare\curseforge\minecraft\Instances\ModpackName。
为了这个例子,让我们把上面的这个 ModpackName 目录称为 GameDir,那么通常情况下,游戏路径的结构应该如下:
因此,配置文件 MoreDefaultOptions.json 位于:
GameDir/Config/MoreDefaultOptions.json。
并且默认文件都应该位于该目录中:
GameDir/Config/MoreDefaultOptions/。
其他配置说明
源默认文件必须始终存储在 MinecraftDir/config/MoreDefaultOptions/ 中。它们不能放在子目录中,所以 JSON 配置文件中 sourceFilePath 的值只是一个文件名。
默认文件的目的地是相对于游戏目录的,因此 options.txt 将被放置在顶级游戏目录中。不能使用诸如“../”之类的路径在文件系统层次结构中遍历更高的路径。destinationFilePath 不能以前导斜杠开头。
注意,在指定目录路径时,建议使用 Unix 风格的正斜杠“/”,这是已经通过测试,并且被证实在 Windows、Mac 和 Unix 上是有效的,不过反斜杠“\”有时也可以正常工作。
如果已经配置了模组,但它并没有起作用,请检查日志文件(客户端或服务器),因为它会记录启动过程中的操作和错误,这将帮助你诊断所存在的问题。
理论上,这个模组可以用于复制任何类型的文件(图像、音频文件,甚至其他模组),使用相同的原理,只要目标文件还不存在,就会在所需位置创建文件,尽管这并不是一个真正受支持的功能。
另外,sourceFilePath 必须是文件,不能是目录。