Skip to content

Fix legacy Codec compatibility on Forge 1.12.2 - #299

Merged
SkyBlade1978 merged 2 commits into
MinecraftModDevelopmentMods:master-1.12.2from
SkyBlade1978:master-1.12.2
Sep 9, 2026
Merged

Fix legacy Codec compatibility on Forge 1.12.2#299
SkyBlade1978 merged 2 commits into
MinecraftModDevelopmentMods:master-1.12.2from
SkyBlade1978:master-1.12.2

Conversation

@SkyBlade1978

Copy link
Copy Markdown
Contributor

Summary

  • fix issue Crash with Cleanroom 0.6.12 (Client only) #298 by removing OreSpawn's startup-time direct linkage to the class-shaped legacy com.mojang.serialization.Codec adapter
  • add an internal class/interface-neutral bridge that supports both OreSpawn's bundled adapter and an interface-shaped Codec supplied earlier on a legacy modpack classpath
  • preserve StandardPatternSettings.CODEC, OrePatternType.create(Codec, Function), OrePatternType.codec(), API major 1, schemas 4/6/5, profiles, migrations, registries, and world-generation behavior
  • update the changelog, README, version documentation, reports, Maven identity, workflows, and artifacts to 4.0.17.112021
  • ensure every automated and generated Eclipse server launch uses Forge 1.12's literal trailing nogui argument and rejects --nogui

This is deliberately a Forge 1.12.2 compatibility release. Cleanroom targets Minecraft 1.12.2, and no other OreSpawn branch will receive the bridge without target-native evidence of the same class/interface collision.

Validation

  • reporter confirmed the supplied 4.0.17.112021 candidate boots their Cleanroom client and connects to their server
  • 158 JUnit tests across 39 suites; zero failures, errors, or skips
  • hermetic interface-first reproduction fails on exact 4.0.16 with the reported IncompatibleClassChangeError and passes on 4.0.17
  • unchanged API consumer compiled against 4.0.16 registers and decodes successfully
  • complete Java 17/Temurin 8 offline lifecycle passed in the main checkout and a cold exact-commit worktree
  • all three public jars were byte-identical between main and cold builds
  • empty Gradle-home Forge bootstrap passed with official MinecraftMavenizer 0.5.19 and no compatibility patch; same-cache offline replay passed
  • exact reobfuscated Forge 14 packaged server fresh/reload passed with bare nogui
  • Cleanroom 0.6.12 interface-first fresh/reload server controls passed with the fixture verified as the winning Codec source
  • 39 runtime logs scanned with zero IncompatibleClassChangeError, NoSuchMethodError, AbstractMethodError, or ClassCastException; zero crash reports or surviving test processes
  • artifact audit retained Java 8 class major 52, Forge 14 metadata, FMLAT, both access-transformer rules, documentation/locales, and zero fixture/test/world leakage

Exact main jar SHA-256: DA99AC45B663E0FB582AC175E7D5AC53C962BD03F00E79299C4BE0E33E9DCCF2

Addresses #298.

@SkyBlade1978
SkyBlade1978 merged commit 8315da4 into MinecraftModDevelopmentMods:master-1.12.2 Sep 9, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant