52417a7b92
Ports the full feature set proven by the two legacy leaves to modern, post-Flattening NeoForge (loader assumption confirmed: NeoForge 26.1.2.94 is real and published). Neoforge261ChunkAdapter reads BlockState via LevelChunk/LevelChunkSection instead of raw id+meta, carrying the full packed state id in DeltaEvent#blockStateId (a lossless int, unlike the pre-Flattening 16-bit encoding) while documenting a known truncation caveat for SectionData's char[]-based 3D backfill on very large modded registries. MCMapperMod uses constructor-injected event buses (IEventBus/ModContainer) and NeoForge.EVENT_BUS instead of @Mod.EventHandler methods, ModConfigSpec instead of legacy Configuration, and LinkCommand is a Brigadier registration (no CommandBase in this era) fired from RegisterCommandsEvent. Tracks its own loaded-chunk set via ChunkEvent.Load/Unload rather than querying chunk provider internals (no stable public API for that in modern MC). Gets its own standalone Gradle wrapper + settings.gradle (Foojay toolchain resolver) since ModDevGradle needs Gradle 8+ and a Java 25 toolchain (MC itself now requires Java 25), incompatible with the legacy leaves' Gradle-7/JDK-8 pin in one invocation. Verified against real NeoForge 26.1.2.94 + decompiled MC 26.1.2 source via ./gradlew build from inside neoforge-26_1/ (two real API mismatches caught and fixed by the compiler: ChunkPos is now a record — x()/z() methods, not fields — and ResourceLocation was renamed to Identifier, ResourceKey#identifier() not #location()).
29 lines
1.5 KiB
Groovy
29 lines
1.5 KiB
Groovy
pluginManagement {
|
|
repositories {
|
|
gradlePluginPortal()
|
|
maven { url = 'https://maven.minecraftforge.net/' }
|
|
maven { url = 'https://maven.neoforged.net/releases' }
|
|
mavenCentral()
|
|
}
|
|
}
|
|
|
|
rootProject.name = 'mcmapper-mod'
|
|
|
|
// `common` is not a buildable Gradle subproject — it's shared source, pulled directly into
|
|
// each leaf's own source set (see common/README.md for why).
|
|
include 'forge-1_7_10'
|
|
include 'forge-1_12_2'
|
|
|
|
// neoforge-26_1 is intentionally NOT included in the default build: both legacy leaves
|
|
// (forge-1_7_10, forge-1_12_2) use anatawa12's ForgeGradle 1.2/2.3 forks, which need Gradle 7.6
|
|
// and JDK 8 (see gradle.properties' org.gradle.java.home pin and this project's
|
|
// gradle-wrapper.properties). ModDevGradle (used by neoforge-26_1) needs Gradle 8+ and a Java 25
|
|
// toolchain (Minecraft itself now requires Java 25 as of the 26.x cycle) — incompatible with
|
|
// that daemon within one invocation. Phase 10 gave it its own standalone build instead: it has
|
|
// its own wrapper + settings.gradle (with the Foojay toolchain resolver, so Gradle
|
|
// auto-provisions the JDK 25 toolchain rather than needing one pre-installed) — build it from
|
|
// inside neoforge-26_1/ directly (`cd neoforge-26_1 && ./gradlew build`), pointing
|
|
// org.gradle.java.home at a JDK 21+ install for the Gradle daemon itself via a separate
|
|
// $GRADLE_USER_HOME (same mechanism as the legacy leaves' JDK 8 pin) — see neoforge-26_1's
|
|
// README section for the full command.
|