Conversation
… runs (because loom creates default runs)
|
I also added a fix for configuring runs with loom (because like RetroFuturaGradle, it always creates runClient and runServer) |
|
Still some small bugs around how I added JvmDowngrader |
|
Thank you for the contribution! I'm just wondering whether it is worth separating each platform implementation into a separate gradle subproject / plugin. Are you ready for review? |
There was a problem hiding this comment.
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
registerinstead ofcreateand 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.
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleImpl.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleImpl.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleExtension.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleImpl.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleExtension.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleImpl.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleImpl.kt
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleImpl.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/dev/isxander/modstitch/base/retrofuturagradle/BaseRetroFuturaGradleImpl.kt
Show resolved
Hide resolved
|
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 |
|
Ready for review, for real this time |
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