Changes
- The version number now includes the platform. For example,
7.3.1+1.21.1
is now7.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.
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.
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.