Special-purpose fork of https://github.com/FabricMC/fabric-loom
Find a file
LogicFan 81fa551382
Better Mixin AP configuration (#423)
* [SPON-15] Apply Mixin AP config for all projects.

* Revert "[SPON-15] Apply Mixin AP config for all projects."

This reverts commit 93576e83b1221949d551b6307938f7dd6dc8fbbe.

* use setter & getter

* fix broken test introduced in 54d6ef7896

* initial commit for mixin extension

* refactor getConfiguration

* apply mixin extension

* [SPON-15] allow across project AP config

* [SPON-15] revert some changes

* [SPON-15] refactor codes

* [SPON-15] fix bugs

* [SPON-15] bring back cross-project apconfig

* [SPON-15] bug fix: move add default sourceSet earlier

* [SPON-15] fix style

* [SPON-15] refactor MixinAPExtension

* add test

* update test

* [SPON-15] fix test

* Update MixinAnnotationProcessorExtension.java

* [SPON-15] fix test

* fix deprecated gradle API

* [SPON-15] refactor ApInvoker

* [SPON-15] refactor ApInvoker

* allow change refmap name in sourceSet bases

* add new condition on test

* [SPON-15] fix wrong suffix

* Revert "[SPON-15] fix wrong suffix"

This reverts commit 98910392d91c26cd0454cca8cfc03c4e3d417fd6.

* fix mixinjson suffix

* use stream instead of collection for mixin json name

* change name for function

* use correct auto-refmap

* fix file name

* add with action

* add test

* refactor some codes

* refactor code

* update test

* fix checkstyle

* better error message

* fix checkstyle

* remove corss project option

* allow mixin inside loom

* remove project0

I should remove all project0. If I forget one please tell me.

* move `mixin` inside `loom`

* fix spotless

* merge attempt

* fix checkstyle

* seperate api & impl

* add experimental annotation for API

* use API

* Fix indentation

Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>

* fix typo

Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>

* fix typo

Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>

* better javadoc

Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
2021-07-18 14:13:47 +01:00
.github/workflows Fix new gradle 8.0 deprecation added in 7.2 (#416) 2021-06-13 13:28:47 +01:00
bootstrap Enforce a minimum Intelij version of 2021.1. 2021-07-17 22:18:14 +01:00
gradle/wrapper Fix local ivy layout not respecting classifiers. Fixes #407 2021-05-28 11:31:19 +01:00
src Better Mixin AP configuration (#423) 2021-07-18 14:13:47 +01:00
.editorconfig Add versions used to compile/build against to jar manifest (#428) 2021-07-13 23:10:07 +01:00
.gitattributes Update Gradle wrapper to 3.0 (#2) 2016-08-16 23:29:10 +01:00
.gitignore Improve error messages when using outdated Java or Gradle. 2021-05-26 11:41:52 +01:00
build.gradle Fix AW field remapping (#434) 2021-07-13 08:52:42 +01:00
checkstyle.xml Fix checkstyle config not supporting windows line endings 2019-11-13 18:00:07 +00:00
codenarc.groovy Add basic groovy code style validation. 2021-03-25 22:57:28 +00: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.