hotfix: fix 26.3 boot crash (renderLevel signature + screen field moved to Gui) — 0.9.8+mc26.3 #5

Merged
tral merged 1 commit from bot/hotfix-0.9.8 into main 2026-09-19 14:34:33 -07:00
Collaborator

Crash log from the shipped v0.9.5+mc26.3 (01:34 2026-09-19, client):

Mixin apply for mod anglesnap failed GameRendererMixin -> GameRenderer:
InvalidInjectionException: @Inject::resetBobMatrix(Lnet/minecraft/client/DeltaTracker;...CallbackInfo;)V
Expected (CallbackInfo)V but found (DeltaTracker;CallbackInfo)V
-> RuntimeException: Mixin transformation of net.minecraft.client.renderer.GameRenderer failed

Root cause (verified against fabric-loom 26.3 minecraft-merged.jar with javap):

  • 26.3 GameRenderer.renderLevel() no longer takes a DeltaTracker parameter (26.2 was renderLevel(DeltaTracker)). The injected handler must be resetBobMatrix(CallbackInfo); any other descriptor makes Mixin fail at boot. Both the released 0.9.5/0.9.4 jars and origin/main still carry the old 26.2 signature.
  • Second latent bug in the same jars: MinecraftClientMixin shadows the screen field on Minecraft, which no longer exists in 26.3 (it moved to Gui). 0.9.5's client.gui.screen()/gui.setScreen() rewrite was correct; this fix restores that access for the null-check and keeps setScreenAndShow(Screen) (the method still exists in 26.3 and does exactly what it did in 26.2: gui.setScreen + a forced renderFrame).
  • bobHurt/bobView and MouseMixin targets were verified unchanged in 26.3.

Changes: GameRendererMixin handler signature; MinecraftClientMixin screen access; mod_version 0.9.4+mc26.3 -> 0.9.8+mc26.3 (0.9.5 was the last shipped tag).
Pins: minecraft 26.3, loader 0.19.5, fabric-api 0.160.7+26.3 (unchanged on main). Local ./gradlew build green.

Crash log from the shipped v0.9.5+mc26.3 (01:34 2026-09-19, client): ``` Mixin apply for mod anglesnap failed GameRendererMixin -> GameRenderer: InvalidInjectionException: @Inject::resetBobMatrix(Lnet/minecraft/client/DeltaTracker;...CallbackInfo;)V Expected (CallbackInfo)V but found (DeltaTracker;CallbackInfo)V -> RuntimeException: Mixin transformation of net.minecraft.client.renderer.GameRenderer failed ``` Root cause (verified against fabric-loom 26.3 minecraft-merged.jar with javap): - 26.3 `GameRenderer.renderLevel()` no longer takes a `DeltaTracker` parameter (26.2 was `renderLevel(DeltaTracker)`). The injected handler must be `resetBobMatrix(CallbackInfo)`; any other descriptor makes Mixin fail at boot. Both the released 0.9.5/0.9.4 jars and `origin/main` still carry the old 26.2 signature. - Second latent bug in the same jars: `MinecraftClientMixin` shadows the `screen` **field** on `Minecraft`, which no longer exists in 26.3 (it moved to `Gui`). 0.9.5's `client.gui.screen()`/`gui.setScreen()` rewrite was correct; this fix restores that access for the null-check and keeps `setScreenAndShow(Screen)` (the method still exists in 26.3 and does exactly what it did in 26.2: `gui.setScreen` + a forced renderFrame). - `bobHurt`/`bobView` and `MouseMixin` targets were verified unchanged in 26.3. Changes: GameRendererMixin handler signature; MinecraftClientMixin screen access; mod_version 0.9.4+mc26.3 -> 0.9.8+mc26.3 (0.9.5 was the last shipped tag). Pins: minecraft 26.3, loader 0.19.5, fabric-api 0.160.7+26.3 (unchanged on main). Local `./gradlew build` green.
tral merged commit 1873a89b04 into main 2026-09-19 14:34:33 -07:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tral/anglesnap!5
No description provided.