Special-purpose fork of https://github.com/FabricMC/fabric-loom
Find a file
shartte d48c74161e
Access Widener 2.0 with support for Transitive Access Wideners (#484)
* Added global access widener support.

* Adapt loom to changed API of latest AW PR.

* Fix expected access widener to fix the test. Since the access widener is now streamed directly into the writer, the expanded rules (i.e. accessible field makes the owning class also accessible) are no longer found in the remapped file.

* Add basic transitive accesswidener test

* Extracted applying transitive access wideners into their own jar processor since they also need to be applied if there is no AW in the mod itself.

* Misc assortment of fixes

* Set up the processor lazily to allow for adding the intermediary MC jar, which is needed to correctly remap intermediary AWs to named.

* Rework to setup the tiny remapper classpath with the mc jar
Add an extension prop to disable

* Add TransitiveDetectorVisitor

* Minor refactoring.

* Use release-version of access-widener.

Co-authored-by: modmuss50 <modmuss50@gmail.com>
2021-09-14 22:40:47 +01:00
.github/workflows Fix loom.accessWidener being a read-only property in Kotlin (#447) 2021-07-26 12:14:31 +01:00
bootstrap Start experimental 0.10 branch - Won't be published right now. 2021-07-31 23:36:02 +01:00
gradle/wrapper Fix local ivy layout not respecting classifiers. Fixes #407 2021-05-28 11:31:19 +01:00
src Access Widener 2.0 with support for Transitive Access Wideners (#484) 2021-09-14 22:40:47 +01:00
.editorconfig Add versions used to compile/build against to jar manifest (#428) 2021-07-13 23:10:07 +01:00
.gitattributes Fix line endings in fapi patch 2021-09-07 11:30:10 +01:00
.gitignore Improve error messages when using outdated Java or Gradle. 2021-05-26 11:41:52 +01:00
build.gradle Access Widener 2.0 with support for Transitive Access Wideners (#484) 2021-09-14 22:40:47 +01:00
checkstyle.xml Update checkstyle to prevent using var expect for new instance creation. 2021-09-07 11:55:05 +01:00
codenarc.groovy Refactor and improve tests (#466) 2021-08-31 11:48:58 +01:00
gradle.properties Revert to old name 2018-10-22 19:25:18 +01:00
gradlew Update to release 7.0 gradle 2021-05-04 18:37:23 +01:00
gradlew.bat Update to release 7.0 gradle 2021-05-04 18:37:23 +01:00
HEADER Use spotless for header validation, years have been back-filled from git history 2021-07-10 21:50:53 +01:00
LICENSE Update Gradle wrapper to 3.0 (#2) 2016-08-16 23:29:10 +01:00
README.md General cleanup by making use of java 16 features (#397) 2021-05-13 22:06:34 +01:00
settings.gradle Improve error messages when using outdated Java or Gradle. 2021-05-26 11:41:52 +01:00

Fabric Loom

A Gradle plugin to setup a deobfuscated development environment for Minecraft mods. Primarily used in the Fabric toolchain.

  • Has built in support for tiny mappings (Used by Yarn)
  • Utilises the Fernflower and CFR decompilers to generate source code with comments.
  • Designed to support modern versions of Minecraft (Tested with 1.14.4 and upwards)
  • Built in support for IntelliJ IDEA, Eclipse and Visual Studio Code to generate run configurations for Minecraft.
  • Loom targets the latest version of Gradle 7 or newer
  • Supports Java 16 upwards

Use Loom to develop mods

To get started developing your own mods please follow the guide on Setting up a mod development environment.

Debugging Loom (Only needed if you want to work on Loom itself)

This guide assumes you are using IntelliJ IDEA, other IDE's have not been tested; your experience may vary.

  1. Import as a Gradle project by opening the build.gradle
  2. Create a Gradle run configuration to run the following tasks build publishToMavenLocal -x test. This will build Loom and publish to a local maven repo without running the test suite. You can run it now.
  3. Prepare a project for using the local version of Loom:
    • A good starting point is to clone the fabric-example-mod into your working directory
    • Add mavenLocal() to the repositories:
      • If you're using id 'fabric-loom' inside plugins, the correct repositories block is inside pluginManagement in settings.gradle
      • If you're using apply plugin: for Loom, the correct repositories block is inside buildscript in build.gradle
    • Change the loom version to 0.6.local. For example id 'fabric-loom' version '0.6.local'
  4. Create a Gradle run configuration:
    • Set the Gradle project path to the project you have just configured above
    • Set some tasks to run, such as clean build you can change these to suit your needs.
    • Add the run configuration you created earlier to the "Before Launch" section to rebuild loom each time you debug
  5. You should now be able to run the configuration in debug mode, with working breakpoints.