* Fix a crash on 1.21.6 when running any of Patched's commands.
Patched (Patched)
Patched是一个模组,允许数据资源包修改JSON文件的部分内容,而不是完全替换它们。它提供了修改数据资源包中JSON文件的部分内容的能力。可用于修补生物群系、战利品表、模型以及游戏中的大多数其他JSON文件。每当Mojang使生物实体模型数据驱动时,Patched很可能也能够修补它们,为OptiFine的CEM提供基本替代方案。
可以使用Patched实现的功能
* 从生物群系中删除或添加世界生成特征
* 从进度中删除或添加条件
* 从战利品表中删除或添加战利品
* 修改配方
* 还有更多!
Patched旨在减少数据/资源包之间以及其他模组之间的冲突。同时也有助于简化这些文件的维护,因为您无需担心文件其他部分过期(例如Minecraft更新会修改您修改无关部分的生物群系)。
Patched还附带了一些命令来检查游戏的状态(`/patchedc`用于客户端):
* `/patched list packs` 显示具有补丁的包列表
* `/patched list patches
* `/patched dump patch
* `/patched dump file
工作原理
Patched允许创建名为待修补文件的“补丁”文件。这些补丁遵循[RFC 6902](
json
{
"op": "find",
"path": "/features/6",
"test": {
"path": "",
"value": "minecraft:ore_gravel"
},
"then": {
"op": "remove",
"path": ""
}
}
然后将此补丁放置在数据包中的位置`data/minecraft/worldgen/biome`,名称为`plains.json.patch`。
为了尽可能提高性能,Patched仅在声明存在任何补丁的包中查找补丁(即,这是一种自愿选择)。这样做是为了避免在整个模组包中查找200多个模组,即使其中只有一个模组包含补丁。包可以通过在其`pack.mcmeta`文件中添加以下内容来启用修补:
json
{
"pack": {
"patched:has_patches": true // 表示向Patched指示此包希望修补内容。
}
}
另一个示例,此补丁将一个自定义生物群系添加到“冒险时光”进度中:
json
[
{
"op": "add",
"path": "/criteria/mydatapack:mybiome",
"value": {
"conditions": {
"player": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"location": {
"biome": "mydatapack:mybiome"
}
}
}
]
},
"trigger": "minecraft:location"
}
},
{
"op": "add",
"path": "/requirements/-",
"value": [ "mydatapack:mybiome" ]
}
]
兼容性
Patched连接到基础资源加载代码,允许任何JSON文件进行修补,甚至其他补丁(理论上)。这将与大多数模组兼容,因为它们不需要修改此代码,任何使用Minecraft资源加载的模组(这在某种程度上是一个要求)将获得Patched的好处。但是,一些模组可能也会更改此资源加载代码,这将导致最好的情况下缺乏功能,在最坏的情况下导致崩溃。
限制
遗憾的是,有一种类型的JSON文件是无法进行补丁的。目前包括标签,这是因为Minecraft如何从每个包加载它们以进行合并。以相似方式加载的资源也会受到此问题的影响。
此外,在低于1.19.3版本中,原版生物群系无法(直接)进行修补。这是因为在这些版本中,这些生物群系是硬编码的--也就是说,没有可供修补的文件。这可以通过先前的数据包添加生物群系来解决,比如从世界生成导出[这里](
版本&下载
* Fix a crash on 1.21.6 when running any of Patched's commands.
* Fix a crash on 1.21.6 when running any of Patched's commands.
* Inter-patch application order has been reversed, aligning it with expectations. Previously, if you had two packs A and B which both contain patches modifying the same part of the same file, then whichever pack came first (i.e. bottom of the resource pack screen or first in the data pack list) would win. In other words, patches are applied in order of highest to lowest priority. This is generally undesirable behavior because it means you can't write a data pack that modifies a mod's patched-in world gen changes *without placing the data pack below the mod in the data pack list*. Now patches are applied in order of least to highest priority. **This is a breaking change for anyone relying on the previous order**. However, the vast majority of people will not be affected by this change as it requires a situation like the earlier example, which is not very common.
* Inter-patch application order has been reversed, aligning it with expectations. Previously, if you had two packs A and B which both contain patches modifying the same part of the same file, then whichever pack came first (i.e. bottom of the resource pack screen or first in the data pack list) would win. In other words, patches are applied in order of highest to lowest priority. This is generally undesirable behavior because it means you can't write a data pack that modifies a mod's patched-in world gen changes *without placing the data pack below the mod in the data pack list*. Now patches are applied in order of least to highest priority. **This is a breaking change for anyone relying on the previous order**. However, the vast majority of people will not be affected by this change as it requires a situation like the earlier example, which is not very common.
* Fix server-side resource reloads (via the `/reload` command) breaking dynamic patches
* Fix a potential error when using the `patched:registered` test condition on 1.21.4
* Fix server-side resource reloads (via the `/reload` command) breaking dynamic patches
* Fix a potential error when using the `patched:registered` test condition on 1.21.4
* Fix data generation crashing on 1.21.3.
* Fix data generation crashing on 1.21.3.
* The version number now includes the platform. For example, `7.3.1+1.21.1` is now `7.3.1+1.21.1-neoforge` (corresponding to the platform it was built for). This means that modders depending on the mod via Modrinth's maven do not need to use a version number like 'EddDSwpM'. The names of each file have also changed slightly to reflect this.
* The version number now includes the platform. For example, `7.3.1+1.21.1` is now `7.3.1+1.21.1-neoforge` (corresponding to the platform it was built for). This means that modders depending on the mod via Modrinth's maven do not need to use a version number like 'EddDSwpM'. The names of each file have also changed slightly to reflect this.
* The version number now includes the platform. For example, `7.3.1+1.21.1` is now `7.3.1+1.21.1-neoforge` (corresponding to the platform it was built for). This means that modders depending on the mod via Modrinth's maven do not need to use a version number like 'EddDSwpM'. The names of each file have also changed slightly to reflect this.
* The version number now includes the platform. For example, `7.3.1+1.21.1` is now `7.3.1+1.21.1-neoforge` (corresponding to the platform it was built for). This means that modders depending on the mod via Modrinth's maven do not need to use a version number like 'EddDSwpM'. The names of each file have also changed slightly to reflect this.
* The version number now includes the platform. For example, `7.3.1+1.21.1` is now `7.3.1+1.21.1-neoforge` (corresponding to the platform it was built for). This means that modders depending on the mod via Modrinth's maven do not need to use a version number like 'EddDSwpM'. The names of each file have also changed slightly to reflect this.
* Patches can now be applied to tags/sounds json/blockstates(?)/etc. or so-called "merged files". These only work for files defined *in the same pack*. That is, you cannot patch a tag defined by Minecraft (although you could patch your own contributions to it). This opens up the possibility for configurable tags, among other things.
## New Features (modder-facing)
* Added the `paste` patch type, which allows 'pasting' arbitrary code-defined data in json files. The intended purpose of this patch type is to make it possible to get config values into otherwise-unconfigurable things like biomes. For example, making a feature's spawn rate configurable without needing data packs. See the documentation and `SingleDataSource` for more information.
* On (Neo)Forge, mods may now use IMC (InterModComms) to register data sources (for the `paste` operation) and test conditions (for `test` patches with a `type` field). See the documentation for details.
## Changes (modder-facing)
* Custom test registration has changed — they are now registered using `Patched.registerTestCondition()` and `Patched.registerSimpleTestCondition()`. Test conditions registered the old way will still work.
* Patches can now be applied to tags/sounds json/blockstates(?)/etc. or so-called "merged files". These only work for files defined *in the same pack*. That is, you cannot patch a tag defined by Minecraft (although you could patch your own contributions to it). This opens up the possibility for configurable tags, among other things.
## New Features (modder-facing)
* Added the `paste` patch type, which allows 'pasting' arbitrary code-defined data in json files. The intended purpose of this patch type is to make it possible to get config values into otherwise-unconfigurable things like biomes. For example, making a feature's spawn rate configurable without needing data packs. See the documentation and `SingleDataSource` for more information.
* On (Neo)Forge, mods may now use IMC (InterModComms) to register data sources (for the `paste` operation) and test conditions (for `test` patches with a `type` field). See the documentation for details.
## Changes (modder-facing)
* Custom test registration has changed — they are now registered using `Patched.registerTestCondition()` and `Patched.registerSimpleTestCondition()`. Test conditions registered the old way will still work.
* Patches can now be applied to tags/sounds json/blockstates(?)/etc. or so-called "merged files". These only work for files defined *in the same pack*. That is, you cannot patch a tag defined by Minecraft (although you could patch your own contributions to it). This opens up the possibility for configurable tags, among other things.
## New Features (modder-facing)
* Added the `paste` patch type, which allows 'pasting' arbitrary code-defined data in json files. The intended purpose of this patch type is to make it possible to get config values into otherwise-unconfigurable things like biomes. For example, making a feature's spawn rate configurable without needing data packs. See the documentation and `SingleDataSource` for more information.
* On (Neo)Forge, mods may now use IMC (InterModComms) to register data sources (for the `paste` operation) and test conditions (for `test` patches with a `type` field). See the documentation for details.
## Changes (modder-facing)
* Custom test registration has changed — they are now registered using `Patched.registerTestCondition()` and `Patched.registerSimpleTestCondition()`. Test conditions registered the old way will still work.
* Patches can now be applied to tags/sounds json/blockstates(?)/etc. or so-called "merged files". These only work for files defined *in the same pack*. That is, you cannot patch a tag defined by Minecraft (although you could patch your own contributions to it). This opens up the possibility for configurable tags, among other things.
## New Features (modder-facing)
* Added the `paste` patch type, which allows 'pasting' arbitrary code-defined data in json files. The intended purpose of this patch type is to make it possible to get config values into otherwise-unconfigurable things like biomes. For example, making a feature's spawn rate configurable without needing data packs. See the documentation and `SingleDataSource` for more information.
* On (Neo)Forge, mods may now use IMC (InterModComms) to register data sources (for the `paste` operation) and test conditions (for `test` patches with a `type` field). See the documentation for details.
## Changes (modder-facing)
* Custom test registration has changed — they are now registered using `Patched.registerTestCondition()` and `Patched.registerSimpleTestCondition()`. Test conditions registered the old way will still work.
* Patches can now be applied to tags/sounds json/blockstates(?)/etc. or so-called "merged files". These only work for files defined *in the same pack*. That is, you cannot patch a tag defined by Minecraft (although you could patch your own contributions to it). This opens up the possibility for configurable tags, among other things.
## New Features (modder-facing)
* Added the `paste` patch type, which allows 'pasting' arbitrary code-defined data in json files. The intended purpose of this patch type is to make it possible to get config values into otherwise-unconfigurable things like biomes. For example, making a feature's spawn rate configurable without needing data packs. See the documentation and `SingleDataSource` for more information.
* On (Neo)Forge, mods may now use IMC (InterModComms) to register data sources (for the `paste` operation) and test conditions (for `test` patches with a `type` field). See the documentation for details.
## Changes (modder-facing)
* Custom test registration has changed — they are now registered using `Patched.registerTestCondition()` and `Patched.registerSimpleTestCondition()`. Test conditions registered the old way will still work.
* Added a new `test` type: `patched:pack_enabled`, which allows checking for the existence of data/resource packs. See the documentation for details.
## Changes
* Rewrote Patched's primary mixin for better compatibility with mods that cause re-entrant resource queries, such as Tiny Skeletons.
## Changes (for mod developers)
* Patched's library sources are now included in the mod's sources jar.
* Patched's internals (or most of them) are now in an `internal` package, rather than spread out all over the place. This will break code using or mixing into these internals, but you shouldn't be doing that anyway.
* Added a new `test` type: `patched:pack_enabled`, which allows checking for the existence of data/resource packs. See the documentation for details.
## Changes
* Rewrote Patched's primary mixin for better compatibility with mods that cause re-entrant resource queries, such as Tiny Skeletons.
## Changes (for mod developers)
* Patched's library sources are now included in the mod's sources jar.
* Patched's internals (or most of them) are now in an `internal` package, rather than spread out all over the place. This will break code using or mixing into these internals, but you shouldn't be doing that anyway.
* Fixed a crash when using the Programmer Art resource pack. (This was caused by a missed change from Fabric API.) This does not affect the Forge build, and shouldn't affect Quilt either (it already has this change).
## Backported Features
* Added the `include` operation, which allows effectively including the contents of a patch inside another patch. This is intended to reduce patch duplication.
* Added "patch targets" (also called "dynamic" patches), which allow applying a single patch to any number of files.
* Added two new `test` types:
* `patched:registered`, which allows testing for the existence of something in a registry
* `patched:item_registered`, which is a simplified version of the above
## Backported Features (for mod developers)
* The patch datagen stuff now supports `Codec`s in all of the methods taking `Object`s, and also now allows providing an alternate `Gson` for serialization in the `Object` versions. There's also been some minor javadoc improvements in that area.
* Patched now supports reading its metadata from the loader-specific mod metadata files! This means that modders can finally ditch their `pack.mcmeta`s and move this data to their `fabric.mod.json`/`quilt.mod.json`/`mods.toml`!
## Backported Changes
* **The Patched metadata in pack.mcmeta files has been modified** to reflect Mojang's changes to pack metadata sections. In short: `patched:has_patches` is no more, and instead there's a `patched` section. **Patched will still load old-style packs.**
## New Features
* Added a new `test` type: `patched:pack_enabled`, which allows checking for the existence of data/resource packs. See the documentation for details.
## New Changes
* Rewrote Patched's primary mixin for better compatibility with mods that cause re-entrant resource queries, such as Tiny Skeletons.
## New Changes (for mod developers)
* Patched's library sources are now included in the mod's sources jar.
* Patched's internals (or most of them) are now in an `internal` package, rather than spread out all over the place. This will break code using or mixing into these internals, but you shouldn't be doing that anyway.
## Backported Features
* Added the `include` operation, which allows effectively including the contents of a patch inside another patch. This is intended to reduce patch duplication.
* Added "patch targets" (also called "dynamic" patches), which allow applying a single patch to any number of files.
* Added two new `test` types:
* `patched:registered`, which allows testing for the existence of something in a registry
* `patched:item_registered`, which is a simplified version of the above
## Backported Features (for mod developers)
* The patch datagen stuff now supports `Codec`s in all of the methods taking `Object`s, and also now allows providing an alternate `Gson` for serialization in the `Object` versions. There's also been some minor javadoc improvements in that area.
* Patched now supports reading its metadata from the loader-specific mod metadata files! This means that modders can finally ditch their `pack.mcmeta`s and move this data to their `fabric.mod.json`/`quilt.mod.json`/`mods.toml`!
## Backported Changes
* **The Patched metadata in pack.mcmeta files has been modified** to reflect Mojang's changes to pack metadata sections. In short: `patched:has_patches` is no more, and instead there's a `patched` section. **Patched will still load old-style packs.**
## New Features
* Added a new `test` type: `patched:pack_enabled`, which allows checking for the existence of data/resource packs. See the documentation for details.
## New Changes
* Rewrote Patched's primary mixin for better compatibility with mods that cause re-entrant resource queries, such as Tiny Skeletons.
## New Changes (for mod developers)
* Patched's library sources are now included in the mod's sources jar.
* Patched's internals (or most of them) are now in an `internal` package, rather than spread out all over the place. This will break code using or mixing into these internals, but you shouldn't be doing that anyway.
## Backported Features
* Added the `include` operation, which allows effectively including the contents of a patch inside another patch. This is intended to reduce patch duplication.
* Added "patch targets" (also called "dynamic" patches), which allow applying a single patch to any number of files.
* Added two new `test` types:
* `patched:registered`, which allows testing for the existence of something in a registry
* `patched:item_registered`, which is a simplified version of the above
## Backported Features (for mod developers)
* The patch datagen stuff now supports `Codec`s in all of the methods taking `Object`s, and also now allows providing an alternate `Gson` for serialization in the `Object` versions. There's also been some minor javadoc improvements in that area.
* Patched now supports reading its metadata from the loader-specific mod metadata files! This means that modders can finally ditch their `pack.mcmeta`s and move this data to their `fabric.mod.json`/`quilt.mod.json`/`mods.toml`!
## Backported Changes
* **The Patched metadata in pack.mcmeta files has been modified** to reflect Mojang's changes to pack metadata sections. In short: `patched:has_patches` is no more, and instead there's a `patched` section. **Patched will still load old-style packs.**
## New Features
* Added a new `test` type: `patched:pack_enabled`, which allows checking for the existence of data/resource packs. See the documentation for details.
## New Changes
* Rewrote Patched's primary mixin for better compatibility with mods that cause re-entrant resource queries, such as Tiny Skeletons.
## New Changes (for mod developers)
* Patched's library sources are now included in the mod's sources jar.
* Patched's internals (or most of them) are now in an `internal` package, rather than spread out all over the place. This will break code using or mixing into these internals, but you shouldn't be doing that anyway.
* Support using a `RegistryOps` in the datagen code.
* Support using a `RegistryOps` in the datagen code.
This is mostly a modder-facing update, adding two things.
First, the patch datagen stuff now supports `Codec`s in all of the methods taking `Object`s, and also now allows providing an alternate `Gson` for serialization in the `Object` versions. There's also been some minor javadoc improvements in that area.
Second, Patched now supports reading its metadata block from the loader-specific mod metadata files! This means that modders can finally ditch their `pack.mcmeta`s and move this data to their `fabric.mod.json`/`neoforge.mods.toml`! See the recently added section in the 'Installation' document for the exact syntax.
This is mostly a modder-facing update, adding two things.
First, the patch datagen stuff now supports `Codec`s in all of the methods taking `Object`s, and also now allows providing an alternate `Gson` for serialization in the `Object` versions. There's also been some minor javadoc improvements in that area.
Second, Patched now supports reading its metadata block from the loader-specific mod metadata files! This means that modders can finally ditch their `pack.mcmeta`s and move this data to their `fabric.mod.json`/`neoforge.mods.toml`! See the recently added section in the 'Installation' document for the exact syntax.
* Updated to 1.21.
* The Fabric build no longer *requires* Fabric API. However, running without Fabric API will prevent mods' patches from being applied, and will cause Patched's client commands to be unavailable. (These features require Fabric API's resource-loader and command-api modules, respectively.)
* Updated to 1.21.
* Updated to 1.20.5.
* Updated to 1.20.5.
* Added the `include` operation, which allows effectively including the contents of a patch inside another patch. This is intended to reduce patch duplication.
* Added "patch targets" (also called "dynamic" patches), which allow applying a single patch to any number of files.
* Added two new `test` types:
* `patched:registered`, which allows testing for the existence of something in a registry
* `patched:item_registered`, which is a simplified version of the above
See also the updated documentation for details on all of these.
## Changes
* **The Patched metadata in `pack.mcmeta` files has been modified** to reflect Mojang's changes to pack metadata sections over the past several updates. In short: `patched:has_patches` is no more, and instead there's a `patched` section. **Patched will still load old-style packs, for now.**
* Fabric: fixed mixins that broke with semi-recent (mid-January) changes to Fabric API.
* NeoForge: updated mod metadata for semi-recent (late-December?) FML changes
* Added the `include` operation, which allows effectively including the contents of a patch inside another patch. This is intended to reduce patch duplication.
* Added "patch targets" (also called "dynamic" patches), which allow applying a single patch to any number of files.
* Added two new `test` types:
* `patched:registered`, which allows testing for the existence of something in a registry
* `patched:item_registered`, which is a simplified version of the above
See also the updated documentation for details on all of these.
## Changes
* **The Patched metadata in `pack.mcmeta` files has been modified** to reflect Mojang's changes to pack metadata sections over the past several updates. In short: `patched:has_patches` is no more, and instead there's a `patched` section. **Patched will still load old-style packs, for now.**
* Fabric: fixed mixins that broke with semi-recent (mid-January) changes to Fabric API.
* NeoForge: updated mod metadata for semi-recent (late-December?) FML changes
* Port to NeoForge 1.20.4.
* Updated to latest 1.20.2 Fabric API.
* Try to avoid crashing the game if an "early loading" error occurs.
* Fix crash on NeoForge ≥20.2.65.
* Update to 1.20.2. There is not currently a Quilt version because QSL does not appear to support 1.20.2 yet. Do not try to use the Fabric version on Quilt; it won't work.
* Update to 1.20.2. There is not currently a Quilt version because QSL does not appear to support 1.20.2 yet. Additionally, Forge has been dropped in favor of NeoForge on 1.20.2+ -- the latest 1.20.1 build should work on Forge 1.20.2, but will likely not work on 1.20.3 and higher. Forge will remain supported on 1.20.1 and below.
Note: the NeoForge sources jar doesn't exactly match the real source code as the common mixins needed `remap = false` added in order to build (NeoForge 1.20.2 removed mod reobf). This doesn't affect other platforms.
* Fix packs that take advantage of Minecraft's filtering causing Patched to throw countless errors.
* Fix packs that take advantage of Minecraft's filtering causing Patched to throw countless errors.
* Fix packs that take advantage of Minecraft's filtering causing Patched to throw countless errors.
* On Fabric (and theoretically also Quilt), give custom builtin packs better names.
* On Fabric (and theoretically also Quilt), give custom builtin packs better names.
* On Fabric (and theoretically also Quilt), give custom builtin packs better names.
* Made the mod avoid crashing if its `FilePackResources` accessor fails to apply. In particular, this change allows the mod to run on 1.20.2 without anything breaking (except for the list commands on `.zip` data/resource packs).
* Made the mod avoid crashing if its `FilePackResources` accessor fails to apply. In particular, this change allows the mod to run on 1.20.2 without anything breaking (except for the list commands on `.zip` data/resource packs).
* Made the mod avoid crashing if its `FilePackResources` accessor fails to apply. In particular, this change allows the mod to run on 1.20.2 without anything breaking (except for the list commands on `.zip` data/resource packs).
## Features
* Leveraged patch audits in file dumping. This means that you can now easily see who changed what (via patches; file replacements have no such indicators).
* There are now two new subcommands for `/patched[c] dump file ...`: `raw` and `unpatched`, for dumping the comment-less patched file and for dumping the file without applying patches, respectively.
* Implemented the `patched:mod_loaded` condition, with support for testing against specific mod versions.
* Implemented basic datagen support for patches.
## Changes
* The version format has been modified to comply a bit better with Semver and allow mods to actually depend on the mod.
* Updated to Patched 1.3.0 (up from 1.0.0).
* Patches can now patch other patches.
* Only parse obvious json files as json, and other optimizations (like not unnecessarily reading files).
## Bug Fixes
* Fixed patches from mods not actually being applied.
* Properly expand mod loader "group" packs to have one pack per mod in commands.
* Fixed listing patches of `.zip` packs not working properly.
* Fixed packs not showing up in `/patched list packs` if they were added using the data packs section of the create world screen.
## Features
* Leveraged patch audits in file dumping. This means that you can now easily see who changed what (via patches; file replacements have no such indicators).
* There are now two new subcommands for `/patched[c] dump file ...`: `raw` and `unpatched`, for dumping the comment-less patched file and for dumping the file without applying patches, respectively.
* Implemented the `patched:mod_loaded` condition, with support for testing against specific mod versions.
* Implemented basic datagen support for patches.
## Changes
* The version format has been modified to comply a bit better with Semver and allow mods to actually depend on the mod.
* Updated to Patched 1.3.0 (up from 1.0.0).
* Patches can now patch other patches.
* Only parse obvious json files as json, and other optimizations (like not unnecessarily reading files).
## Bug Fixes
* Fixed patches from mods not actually being applied.
* Properly expand mod loader "group" packs to have one pack per mod in commands.
* Fixed listing patches of `.zip` packs not working properly.
* Fixed packs not showing up in `/patched list packs` if they were added using the data packs section of the create world screen.
## Features
* Leveraged patch audits in file dumping. This means that you can now easily see who changed what (via patches; file replacements have no such indicators).
* There are now two new subcommands for `/patched[c] dump file ...`: `raw` and `unpatched`, for dumping the comment-less patched file and for dumping the file without applying patches, respectively.
* Implemented the `patched:mod_loaded` condition, with support for testing against specific mod versions.
* Implemented basic datagen support for patches.
## Changes
* The version format has been modified to comply a bit better with Semver and allow mods to actually depend on the mod.
* Updated to Patched 1.3.0 (up from 1.0.0).
* Patches can now patch other patches.
* Only parse obvious json files as json, and other optimizations (like not unnecessarily reading files).
## Bug Fixes
* Fixed patches from mods not actually being applied.
* Properly expand mod loader "group" packs to have one pack per mod in commands.
* Fixed listing patches of `.zip` packs not working properly.
* Fixed packs not showing up in `/patched list packs` if they were added using the data packs section of the create world screen.
* The version format has been modified to comply a bit better with Semver and allow mods to actually depend on the mod. The version has been bumped to `2.x.x` to allow better differentiation between builds from past and future major versions (this change has also been applied to the latest 1.20.x build).
* Updated to Patched 1.3.0, bringing with it mainly one change: patches can now replace the root document.
* Patches can now patch other patches.
* More optimizations to patching file I/O. In particular, we don't try to read a file if no one is trying to patch it.
* The `patched:mod_loaded` test condition now supports testing against specific mod versions.
* There are now two new subcommands for `/patched[c] dump file ...`: `raw` and `unpatched`, for dumping the comment-less patched file and for dumping the file without applying patches, respectively.
* The version format has been modified to comply a bit better with Semver and allow mods to actually depend on the mod. The version has been bumped to `2.x.x` to allow better differentiation between builds from past and future major versions (this change has also been applied to the latest 1.20.x build).
* Updated to Patched 1.3.0, bringing with it mainly one change: patches can now replace the root document.
* Patches can now patch other patches.
* More optimizations to patching file I/O. In particular, we don't try to read a file if no one is trying to patch it.
* The `patched:mod_loaded` test condition now supports testing against specific mod versions.
* There are now two new subcommands for `/patched[c] dump file ...`: `raw` and `unpatched`, for dumping the comment-less patched file and for dumping the file without applying patches, respectively.
* The version format has been modified to comply a bit better with Semver and allow mods to actually depend on the mod. The version has been bumped to `2.x.x` to allow better differentiation between builds from past and future major versions (this change has also been applied to the latest 1.20.x build).
* Updated to Patched 1.3.0, bringing with it mainly one change: patches can now replace the root document.
* Patches can now patch other patches.
* More optimizations to patching file I/O. In particular, we don't try to read a file if no one is trying to patch it.
* The `patched:mod_loaded` test condition now supports testing against specific mod versions.
* There are now two new subcommands for `/patched[c] dump file ...`: `raw` and `unpatched`, for dumping the comment-less patched file and for dumping the file without applying patches, respectively.
* The version format has been modified to comply a bit better with Semver and allow mods to actually depend on the mod. The version has been bumped to `3.x.x` to allow better differentiation between builds from past major versions (and will likely be bumped again if `1.20.2` includes breaking changes).
* Updated to Patched 1.3.0, bringing with it mainly one change: patches can now replace the root document.
* Patches can now patch other patches.
* More optimizations to patching file I/O. In particular, we don't try to read a file if no one is trying to patch it.
* The `patched:mod_loaded` test condition now supports testing against specific mod versions.
* There are now two new subcommands for `/patched[c] dump file ...`: `raw` and `unpatched`, for dumping the comment-less patched file and for dumping the file without applying patches, respectively.
* The version format has been modified to comply a bit better with Semver and allow mods to actually depend on the mod. The version has been bumped to `3.x.x` to allow better differentiation between builds from past major versions (and will likely be bumped again if `1.20.2` includes breaking changes).
* Updated to Patched 1.3.0, bringing with it mainly one change: patches can now replace the root document.
* Patches can now patch other patches.
* More optimizations to patching file I/O. In particular, we don't try to read a file if no one is trying to patch it.
* The `patched:mod_loaded` test condition now supports testing against specific mod versions.
* There are now two new subcommands for `/patched[c] dump file ...`: `raw` and `unpatched`, for dumping the comment-less patched file and for dumping the file without applying patches, respectively.
* The version format has been modified to comply a bit better with Semver and allow mods to actually depend on the mod. The version has been bumped to `3.x.x` to allow better differentiation between builds from past major versions (and will likely be bumped again if `1.20.2` includes breaking changes).
* Updated to Patched 1.3.0, bringing with it mainly one change: patches can now replace the root document.
* Patches can now patch other patches.
* More optimizations to patching file I/O. In particular, we don't try to read a file if no one is trying to patch it.
* The `patched:mod_loaded` test condition now supports testing against specific mod versions.
* There are now two new subcommands for `/patched[c] dump file ...`: `raw` and `unpatched`, for dumping the comment-less patched file and for dumping the file without applying patches, respectively.
* Backport Quilt support to 1.19.2.
* Moved to a multi-loader workspace, like the 1.20 version.
* Backported the following changes:
* Only parse obvious json files as json, theoretically improving performance.
* Properly expand mod loader "group" packs to have one pack per mod in commands.
* Fixed listing patches of `.zip` packs not working properly.
* Fix not applying patches from Fabric mods.
* Fixed packs not showing up in `/patched list packs` if they were added using the data packs section of the create world screen (untested, but should work).
* Moved to a multi-loader workspace, like the 1.20 version.
* Backported the following changes:
* Only parse obvious json files as json, theoretically improving performance.
* Properly expand mod loader "group" packs to have one pack per mod in commands.
* Fixed listing patches of `.zip` packs not working properly.
* Fix not applying patches from Fabric mods.
* Fixed packs not showing up in `/patched list packs` if they were added using the data packs section of the create world screen (untested, but should work).
* Add Quilt support.
* The mod now uses a proper multi-loader workspace instead of one branch per loader.
* Also we're now publishing source jars.
* Patched now only tries to parse obvious json files as json.
* This should slightly improve load times.
* Side note: this was supposed to be the case from the beginning, but then I noticed the code for it had no usages...
* "Group" packs are now expanded in the commands, meaning e.g. instead of a "Fabric Mods" or "mod_resources" pack there's instead a pack for each mod.
* Fixed listing patches of `.zip` packs not working properly.
* The mod now uses a proper multi-loader workspace instead of one branch per loader.
* Also we're now publishing source jars.
* Patched now only tries to parse obvious json files as json.
* This should slightly improve load times.
* Side note: this was supposed to be the case from the beginning, but then I noticed the code for it had no usages...
* "Group" packs are now expanded in the commands, meaning e.g. instead of a "Fabric Mods" or "mod_resources" pack there's instead a pack for each mod.
* Fixed listing patches of `.zip` packs not working properly.
forge-1.20-1.0.0
* Updated to 1.20.
fabric-1.20-1.0.0
* Updated to 1.20.
fabric-1.19.3-1.0.2
* Fix not applying patches from other Fabric mods.
fabric-1.19.3-1.0.1
* Fixed packs not showing up in `/patched list packs` if they were added using the data packs section of the create world screen.
forge-1.19.3-1.0.1
* Fixed packs not showing up in `/patched list packs` if they were added using the data packs section of the create world screen.
fabric-1.19.3-1.0.0
* Updated to 1.19.3.
forge-1.19.3-1.0.0
* Updated to 1.19.3.
forge-1.19.2-1.1.1
* Fixed patches from mods being completely ignored.
* This means that mods can actually patch things now.
fabric-1.19.2-1.1.0
* Bumped Patched library dependency to 1.2.1 (up from 1.1.1).
* See also its changelogs [here](https://github.com/EnderTurret/Patched/releases/tag/v1.2.0) and [here](https://github.com/EnderTurret/Patched/releases/tag/v1.2.1).
* Leveraged patch audits in file dumping.
* This means that you can now easily see who changed what (via patches; file replacements have no such indicators).
### Internal Changes
* [Breaking Change] Made exposed utility classes `final` and made some internal code package-private.
* Made Forge/Fabric code more similar to each other.
* Properly marked internal code as internal.
forge-1.19.2-1.1.0
* Bumped Patched library dependency to 1.2.1 (up from 1.1.1).
* See also its changelogs [here](https://github.com/EnderTurret/Patched/releases/tag/v1.2.0) and [here](https://github.com/EnderTurret/Patched/releases/tag/v1.2.1).
* Leveraged patch audits in file dumping.
* This means that you can now easily see who changed what (via patches; file replacements have no such indicators).
### Internal Changes
* [Breaking Change] Made exposed utility classes `final` and made some internal code package-private.
* Made Forge/Fabric code more similar to each other.
* Properly marked internal code as internal.
fabric-1.19.2-1.0.0
* Updated to Patched 1.1.1
* Added support for "custom test conditions"
* Implemented the `patched:mod_loaded` condition
* Implemented basic datagen support for patches
forge-1.19.2-1.0.0
* Updated to Patched 1.1.1
* Added support for "custom test conditions"
* Implemented the `patched:mod_loaded` condition
* Implemented basic datagen support for patches
fabric-1.18.2-1.0.0
forge-1.18.2-1.0.0
收录


