petrolpark / Destroy

A chemistry-themed add-on to the Minecraft mod, Create
https://modrinth.com/mod/destroy
94 stars 40 forks source link

Crash on Overlay Rendering due to Mixin Injection Error (Curios API, Destroy Mod) #495

Open NanKu257 opened 1 month ago

NanKu257 commented 1 month ago

Issue Description:

Minecraft crashes during the rendering of the inventory screen. The crash is caused by multiple mod Mixin conflicts, specifically between the Curios API and Destroy mods' CreativeModeInventoryScreenMixin injection attempts. The error occurs during the resource loading and application of mod Mixins, resulting in MixinTransformerError and InjectionError exceptions.

Key points from the crash report:

Mods involved: Curios API, Destroy

Mixin errors: Injection failure in the addLimitedSlots method, causing an InjectionError, which further triggers a MixinTransformerError. Location of the error: The crash occurs in Curios API at the method GuiEventHandler.onInventoryGuiInit during the rendering of the inventory screen, involving Destroy's modifications to CreativeModeInventoryScreenMixin.

https://mclo.gs/isX7Hhr

Cause of the issue:

Connector and Mixin conflicts: There seems to be a conflict in how Mixins are applied between the Curios API and Destroy mods, particularly with the Connector mod. This causes the Curios GUI initialization to fail during rendering. Destroy mod injection failure: The Destroy mod's CreativeModeInventoryScreenMixin fails to inject properly when attempting to add slots to a NonNullList, resulting in 0 successful injections.

Additional information:

Minecraft version: 1.20.1 Forge version: 47.3.10 Connector version: 1.0.0-beta.45+1.20.1 Other involved mods: Embeddium Extra, Valkyrien Skies, Oculus, Entity Texture Features, Curios, Destroy.

Steps to Reproduce:

Start the game. As resources load, the system attempts to apply Mixin changes. The crash happens when the system initializes the Curios API's GUI event handler during inventory screen rendering.

Expected behavior:

The inventory screen should render correctly without causing the game to crash.

Actual behavior:

The game crashes during the rendering of the inventory screen due to MixinTransformerError and InjectionError, caused by the Destroy mod's CreativeModeInventoryScreenMixin injection failure.

petrolpark commented 1 month ago

I can't replicate with only Destroy and Curios, can you? Also, what version of Curios are you using?

tlitookilakin commented 1 month ago

I think this is an issue specifically with connector. If you're using Connector, I would recommend Accessories instead of curios, because it supports both trinkets (for fabric mods) and curios (for forge mods) through addons, and does not have this issue.