New Features
- 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 andSingleDataSource
for more information. - On (Neo)Forge, mods may now use IMC (InterModComms) to register data sources (for the
paste
operation) and test conditions (fortest
patches with atype
field). See the documentation for details.
Changes (modder-facing)
- Custom test registration has changed — they are now registered using
Patched.registerTestCondition()
andPatched.registerSimpleTestCondition()
. Test conditions registered the old way will still work.
Features
- 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.
Changes
- 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).
This update backports just about everything added from 5.1.0+1.20.4
to 7.1.1+1.21.1
. It also introduces a few new changes and features, which will be ported over to 1.21.1
shortly.
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 registrypatched: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 takingObject
s, and also now allows providing an alternateGson
for serialization in theObject
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 theirfabric.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 apatched
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.
Changes
- Support using a
RegistryOps
in the datagen code.
Changes
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.
Changes
- 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.)
Changes
- Updated to 1.21.
Changes
- Updated to 1.20.5.