Skip to content

Port from Fabric 1.19.4 to NeoForge 1.21.1 - #106

Open
codebooo wants to merge 1 commit into
Andrew6rant:1.19.3from
codebooo:1.21.1-neoforge
Open

Port from Fabric 1.19.4 to NeoForge 1.21.1#106
codebooo wants to merge 1 commit into
Andrew6rant:1.19.3from
codebooo:1.21.1-neoforge

Conversation

@codebooo

Copy link
Copy Markdown

Full loader migration + Minecraft version bump (1.19.4 -> 1.21.1), Fabric/yarn -> NeoForge/official Mojmaps.

Build:

  • fabric-loom -> ModDevGradle 2.0.142, NeoForge 21.1.242, Gradle 8.8, Java 21
  • fabric.mod.json -> META-INF/neoforge.mods.toml; accesswidener dropped (replaced by @Accessor/@invoker mixins); mixins.json -> JAVA_21, no refmap
  • cloth-config-fabric -> cloth-config-neoforge 15.0.140; ModMenu dropped (config screen via IConfigScreenFactory + AutoConfig)

Code:

  • Merged ModInitializer + ClientModInitializer into one @mod(dist=CLIENT) class; Fabric events -> NeoForge event bus (RegisterKeyMappingsEvent, ClientTickEvent.Post, ClientPlayerNetworkEvent.LoggingIn)
  • Rendering: MatrixStack -> GuiGraphics; tab backgrounds -> vanilla 1.21.1 creative-tab sprites via blitSprite (creative_inventory/tabs.png was removed)
  • ItemStack NBT -> DataComponents (skull-owner head); BlockEntity custom name via Nameable; Registries -> BuiltInRegistries; data tags tags/blocks -> tags/block (1.21)
  • Retargeted all mixins to Mojmaps (AbstractContainerScreen, KeyBindsList, renderBg, etc.)

Verified: gradlew build succeeds; runClient loads to main menu with the mod and mixin config applied, no errors. In-game visual behavior not exhaustively tested.

Full loader migration + Minecraft version bump (1.19.4 -> 1.21.1),
Fabric/yarn -> NeoForge/official Mojmaps.

Build:
- fabric-loom -> ModDevGradle 2.0.142, NeoForge 21.1.242, Gradle 8.8, Java 21
- fabric.mod.json -> META-INF/neoforge.mods.toml; accesswidener dropped
  (replaced by @Accessor/@invoker mixins); mixins.json -> JAVA_21, no refmap
- cloth-config-fabric -> cloth-config-neoforge 15.0.140; ModMenu dropped
  (config screen via IConfigScreenFactory + AutoConfig)

Code:
- Merged ModInitializer + ClientModInitializer into one @mod(dist=CLIENT) class;
  Fabric events -> NeoForge event bus (RegisterKeyMappingsEvent, ClientTickEvent.Post,
  ClientPlayerNetworkEvent.LoggingIn)
- Rendering: MatrixStack -> GuiGraphics; tab backgrounds -> vanilla 1.21.1
  creative-tab sprites via blitSprite (creative_inventory/tabs.png was removed)
- ItemStack NBT -> DataComponents (skull-owner head); BlockEntity custom name via
  Nameable; Registries -> BuiltInRegistries; data tags tags/blocks -> tags/block (1.21)
- Retargeted all mixins to Mojmaps (AbstractContainerScreen, KeyBindsList, renderBg, etc.)

Verified: gradlew build succeeds; runClient loads to main menu with the mod and
mixin config applied, no errors. In-game visual behavior not exhaustively tested.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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