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:
parent
6bf50a294b
commit
1c3a4469a9
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user