Skip to content

Add RetroFuturaGradle support#42

Open
LelouBil wants to merge 9 commits intoisXander:masterfrom
LelouBil:master
Open

Add RetroFuturaGradle support#42
LelouBil wants to merge 9 commits intoisXander:masterfrom
LelouBil:master

Conversation

@LelouBil
Copy link

@LelouBil LelouBil commented Jan 30, 2026

I have started a mod project over here https://github.com/ArchipelagoMinecraft/CoreClient
that aims to support modern (1.17+) and legacy (1.7.10, 1.12.2) minecraft versions.

Currently with modstitch, you can only use moddevgradle-legacy to go down to 1.17, and in a fork I have implemented support for RetroFuturaGradle (https://github.com/GTNewHorizons/RetroFuturaGradle) used for 1.7.10 and 1.12.2 modding.

I'm doing a PR in case you think it's something that has its place here.

And maybe the JVM Downgrader support I put in specifically in RFG could be added in a platform-agnostic way

This PR also adds SRGUtils to convert the SRG mappings RFG generates into TSRG to give to the access transformer remapper

@LelouBil
Copy link
Author

I also added a fix for configuring runs with loom (because like RetroFuturaGradle, it always creates runClient and runServer)

@LelouBil LelouBil marked this pull request as draft January 30, 2026 19:40
@LelouBil
Copy link
Author

Still some small bugs around how I added JvmDowngrader

@isXander
Copy link
Owner

isXander commented Feb 2, 2026

Thank you for the contribution!

I'm just wondering whether it is worth separating each platform implementation into a separate gradle subproject / plugin.
Because, I love having as many platform implementations as possible, but I'm wary on whether adding all of them to the same project will make things potentially harder to fix / update since I'm then forced to do them all at once.

Are you ready for review?

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for RetroFuturaGradle (RFG), a build system for legacy Minecraft versions (1.7.10 and 1.12.2). The implementation integrates RFG alongside existing platforms (Loom and ModDevGradle), adds mapping conversion utilities using SRGUtils, and includes several refactoring improvements to configuration handling across all platforms.

Changes:

  • Added complete RetroFuturaGradle platform implementation with support for access transformers, mixin configurations, and run tasks
  • Introduced SRGUtils dependency for converting SRG mappings to TSRG format
  • Refactored configuration creation across all platforms to use register instead of create and properly set configuration flags

Reviewed changes

Copilot reviewed 13 out of 14 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
build.gradle.kts Added RFG and SRGUtils dependencies; contains critical typo in group name
gradle.properties Added RFG version property
src/main/kotlin/dev/isxander/modstitch/base/BasePlugin.kt Registered RFG platform implementation
src/main/kotlin/dev/isxander/modstitch/base/BaseCommonImpl.kt Modernized Java toolchain configuration
src/main/kotlin/dev/isxander/modstitch/base/extensions/Modstitch.kt Added RFG extension hook and cleaned up debug logging
src/main/kotlin/dev/isxander/modstitch/base/loom/BaseLoomImpl.kt Refactored configuration creation to use register pattern
src/main/kotlin/dev/isxander/modstitch/base/moddevgradle/BaseModDevGradleImpl.kt Refactored configuration creation to use register pattern
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleImpl.kt Main RFG implementation with access transformers, mixin, and run configuration support
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleExtension.kt RFG-specific extension with forge version, MCP settings, and mixin dependencies
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/AppendRFGMetadataTask.kt Task for appending RFG metadata (currently empty implementation)
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/ConvertMappingsTask.kt Task to convert mappings between formats using SRGUtils
src/main/kotlin/dev/isxander/modstitch/util/ClassTweaker.kt Removed field descriptors from access transformer output for Forge compatibility
src/main/kotlin/dev/isxander/modstitch/util/Platform.kt Added RFG platform enum value
src/main/kotlin/dev/isxander/modstitch/util/ProjectUtils.kt Added maybeRegister utility for conditional task registration

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

isXander and others added 2 commits February 2, 2026 11:38
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@LelouBil
Copy link
Author

LelouBil commented Feb 2, 2026

So, mostly ready for review, but there's a couple unrelated things that I did in order to use my fork in the meantime that you probably want me to remove ?

Like, I made all of the modstitch configurations declarable only, which I found out was Gradle best-practice.

I also changed some code in Loom, to allow configuring it's default "client" and "server" runs, and also allow specifying any director as the working directory (because loom just takes a string relative to project root)

And I removed the (unused ?) shadow plugin since it conflicted with my usage of modstitch

@LelouBil LelouBil marked this pull request as ready for review February 2, 2026 16:28
@LelouBil LelouBil marked this pull request as draft February 2, 2026 16:29
@LelouBil LelouBil marked this pull request as ready for review February 2, 2026 17:03
@LelouBil
Copy link
Author

LelouBil commented Feb 2, 2026

Ready for review, for real this time

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants