Files
MCMapper-Mod/settings.gradle
T
octoturge 52417a7b92 Phase 10: implement neoforge-26_1 leaf (WS, deltas, chat, link, reconciliation, player tracking)
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()).
2026-08-09 22:44:06 +02:00

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.