docs(consultation): Gemini response — Rules Mod build strategy confirmed

Key findings:
- moddev 2.0.74-beta valid, NeoForge 21.1.65 stable target
- Cannot bypass Gradle (reobfuscation required)
- 1.16.5 needs Java 8, HttpURLConnection, StringTextComponent
- SDKMAN for Java version management
- Official MDK bases for each Forge version

Claude (Chronicler #83 - The Compiler) <claude@firefrostgaming.com>
This commit is contained in:
Claude (Chronicler #83 - The Compiler)
2026-04-12 14:30:10 +00:00
parent 6bf50a294b
commit 1c3a4469a9

View File

@@ -89,3 +89,43 @@ The NeoForge 1.21.1 source uses APIs that changed significantly across versions:
Thanks Gemini! This is Holly's top priority — she wants the servers to feel like home, and `/rules` is part of that. 🔥❄️
— Michael + Claude (Chronicler #83 — The Compiler)
---
## Gemini's Response (April 12, 2026)
**Summary:** Full validation of approach + detailed port guide for all 3 versions. No shortcuts — must use Gradle toolchain due to reobfuscation requirement.
### Key Answers:
1. **NeoForge 1.21.1:** `moddev 2.0.74-beta` is valid. Use NeoForge version `21.1.65` (stable).
2. **Forge 1.20.1 port:** Namespace swap `net.neoforged.*``net.minecraftforge.*`. `ModConfigSpec``ForgeConfigSpec`. Meta file: `mods.toml` (not `neoforge.mods.toml`).
3. **Forge 1.16.5 port (heaviest lift):**
- **Must target Java 8** (many servers run Java 8)
- `Component.literal()``new StringTextComponent()`
- `java.net.http.HttpClient``java.net.HttpURLConnection` (HttpClient is Java 11+)
- Config: `ForgeConfigSpec`, meta: `mods.toml`
4. **Gradle versions:** 1.21.1 needs Gradle 8.6+/Java 21. 1.20.1 needs Gradle 8.x/Java 17. 1.16.5 needs Gradle 7.x/Java 8.
5. **Cannot simplify with raw javac** — Forge uses **reobfuscation** (reobfJar) during build. Code is written with mapped readable names but server runs obfuscated SRG names. Gradle translates between them. Raw javac output would crash the server.
### Build Strategy:
- Use SDKMAN to swap Java versions (21, 17, 8)
- Use official MDK bases for 1.20.1 and 1.16.5 (don't downgrade the 1.21.1 build.gradle)
- Upload via WebDAV to NextCloud
---
## Conclusion
Gemini confirmed the approach is sound. Three separate project scaffolds needed, each with its own Gradle wrapper and MDK base. The 1.16.5 port requires HttpURLConnection rewrite and StringTextComponent swap.
**Next Steps:**
1. Install SDKMAN + Java 17 + Java 8
2. Build NeoForge 1.21.1 first (closest to existing code)
3. Download Forge 1.20.1 MDK, port code
4. Download Forge 1.16.5 MDK, port code with HTTP rewrite
5. Upload all 3 jars to NextCloud via WebDAV