Skip to content

Port Mineralogy 6.1.1 to Minecraft 1.20.6 Forge - #154

Merged
SkyBlade1978 merged 5 commits into
MinecraftModDevelopmentMods:master-1.20.6from
SkyBlade1978:master-1.20.6
Sep 2, 2026
Merged

Port Mineralogy 6.1.1 to Minecraft 1.20.6 Forge#154
SkyBlade1978 merged 5 commits into
MinecraftModDevelopmentMods:master-1.20.6from
SkyBlade1978:master-1.20.6

Conversation

@SkyBlade1978

Copy link
Copy Markdown
Collaborator

Summary

Ports Mineralogy 6.1.1 to Minecraft 1.20.6 Forge as 6.1.1.120061, using the accepted 1.20.1 implementation as the functional source while preserving registry identities, NBT, assets, recipes, migrations, configuration semantics, and legacy-world compatibility.

This targets Forge 50.2.0, Java 21, pack format 32, and released OreSpawn 4.0.16.120061 (CurseForge file 8786031). Runtime metadata accepts orespawn@[4.0.6,5.0.0) while compilation and validation pin the exact released artifact.

Main changes

  • Adapts Mineralogy to Forge 50 APIs, including injected mod-loading context, holder-aware serialization, data-component-era item/enchantment access, creative tabs, fluids, rendering, interactions, tags, block entities, and containers.
  • Retains the schema-4/revision-3 OreSpawn provider with 32 rock rules, three ores, native aliases, stone/deepslate hosts, and the covered Ocean crude-oil deposit; Mineralogy registers no terrain or ore generator.
  • Preserves non-rewriting configuration, both atomic/idempotent migration paths, issue-121 controls, grouped tabs, configurable cobblestone equivalence, furnace recovery, replacement drops, lamp support, double-slab harvesting, crude oil, and the 1.20.1 relief-rendering fix.
  • Retargets the expanded legacy-state conversion and exact Forge 50 level/chunk hooks, including selected-world restoration, furnace normalization, sidecar recovery, chunk protection, and support beyond Minecraft's historical 4,095-state limit.
  • Keeps recipes JSON-only: 1,427 Mineralogy recipes and progressive advancements, 38 Minecraft recipe overrides, 20 Minecraft advancement overrides, 12 reversible slab bridges, and all 19 configurable cobblestone routes.
  • Ports recipes, advancements, and conditions to the 1.20.6 codecs, including result id, holder-set predicates, sends_telemetry_event: false, forge:condition, and MapCodec condition registration.
  • Retains 17 reviewed locales with 938 ordered keys and seven human-facing guide exports updated for the target.
  • Uses ForgeGradle 7.0.34, Gradle 9.6.1, pinned Temurin 21.0.7+6, reproducible archives, and the checksum-sealed Forge 50 zero-repair Mavenizer fixture.
  • Adds pinned CI, CodeQL, wrapper validation, cold-bootstrap coverage, and guarded exact-tag validation.
  • Hardens generated Eclipse launches for paths containing spaces and makes Eclipse consume processed resources, preventing unresolved mods.toml versions and Forge's misleading Failed to find system mod: minecraft startup failure.

Validation

  • 56 JUnit tests pass, including real Forge 50 condition, recipe, advancement, tag, migration, fluid, furnace, drop, slab, locale, documentation, and release-contract coverage.
  • Complete release, Javadoc, checksum, Mavenizer, Java 21 toolchain, cold-bootstrap, Eclipse-generation/isolation/classpath, final assembly, and patch-format gates pass.
  • Exact packaged client and dedicated-server fresh/reload smokes pass with Forge 50.2.0 and released OreSpawn 4.0.16; complete logs, classpaths, mod lists, shutdown output, and crash directories were audited.
  • Preferred-seed Ocean and forced-volcanic generation cover all 32 rocks and three ores. The Ocean audit found 95 actual crude-oil blocks in 38 columns with two solid cover blocks above every column; 81-chunk Nether and End audits contain no Mineralogy generation.
  • Historical global crude_oil coexistence passes an isolated fresh/reload compatibility fixture with distinct fluids/buckets and additive tags.
  • Disposable accepted-1.20.1 and converted-Sylvester upgrades pass first load/reload, preserve configs, profiles, reports, inventories and occupied furnace state, and report no Mineralogy/OreSpawn mapping failures.
  • Manual Eclipse/gameplay testing accepted the exact final candidate after both Eclipse launch corrections.
  • Main jar SHA-256: 1AA724315D6A019F0FDF1CB5449A44383E7ACE793CCCD2236138978E1DD486C3.

Accepted candidate: 7f406e96c6fa52b0d7c031abe3917894e4633ad1.
Fork merge commit: fff2d29d0f2efad035f2e5bd02a88a87ffdeac6a (tree-identical to the accepted candidate).

This is the Forge port only. NeoForge 1.20.6 remains a separate loader lineage. Tagging and publication are not part of this PR.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant