JsonPatcher

JsonPatcher

用于修补Minecraft的JSON文件的工具,不会覆盖它们,使用自定义DSL。

基础库

JsonPatcher

显示 Modrinth 下载量的徽章 显示 CurseForge 下载量的徽章 链接到 GitHub 问题的徽章 链接到 Discord 支持的徽章

JsonPatcher 是一个允许你修改数据包和资源包中 JSON 文件而无需覆盖它们的模组。 这对模组开发者和整合包作者尤其有用,但玩家也可以用它来修改自己的包。

V2 免责声明

JsonPatcher v2 目前处于测试阶段。V2 引入了许多新功能,包括针对模组和整合包的全局补丁。 有关 v2 的文档可在 jsonpatcher-docs.mattidragon.dev 获取。 不过文档相当不完整且部分内容已过时。 在某些情况下,最好参考旧版维基。

使用方法

Gradle 依赖(面向模组开发者)

你可以通过以下方式将 jsonpatcher 添加到模组构建脚本中:

repositories {
    maven {
        url 'https://jitpack.io'
    }
}

dependencies {
    modImplementation(include("com.github.mattidragon:jsonpatcher:${jsonpatcher_version}"))
}

要开始使用 JsonPatcher,只需在数据包的 data/<命名空间>/jsonpatch 目录下创建一个扩展名为 .jsonpatch 的文件, 或者在资源包的 assets/<命名空间>/jsonpatch 目录下创建即可。

你需要像这样以 @version 元标签开头。 这将让 JsonPatcher 知道你的补丁适用于该版本。 将来你或许能通过更多方式选择版本。

@version "1"

接下来,你需要选择要修补的文件。 这通过 @target 元标签完成。所有元标签都遵循 JSON 格式。 你可以使用字符串选择单个文件,使用对象进行更广泛的选择,或使用数组进行多个选择。如果数组中有任意选择器匹配,则补丁将应用。

现在你可以开始修改目标文件了。补丁文件使用类 C 语法。 你可以使用 $ 访问目标文件的内容。它可以像变量一样使用,也可以直接在其后添加你希望访问的属性。

有关该语言的更多信息,请参阅 维基。