Quilted Fabric API (QFAPI) / Quilt Standard Libraries (QSL)
Any compatible version
Changes
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 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.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }