Not Enough Items 1.8.+

Not Enough Items 1.8.+

16M Downloads

Chisel GUI crash

OfficialEsco opened this issue · 14 comments

commented

The client crashes when i'm trying to open the chisel GUI

I used JEI x.341 and FEI x.17.1 before and it worked, then i decided i wanted to try NEI, so i installed JEI x.349 and NEI x.2.163 and removed FEI, everything seemed to work perfectly until i needed to chisel something, the second i right clicked on the chisel tool my client just said byebye /wo crash screen

https://gist.github.com/OfficalEsco/e92e21fbc7943229a272bb612ad35c34

Not sure if this is a NEI problem or JEI is still making GUI problems in version x.341+

commented

Does the issue exist without NEI?

commented

Didn't really do much research before posting so i took a gamble that it was your problem, but i did my research now and no the problem does not exist when i remove NEI, so my gut was right

commented

Chisel-Team/Chisel#247 and #25

This only occurs when using the iChisel, normal chisels work fine.

commented

I'll investigate this some more.

commented

I'll just kindly bump this up because I had this happen just now on my server.
Well, on the client, that is :P

commented

Bump too, bug still persist => When you use IChisel, game crash :

Crash report available here : Here !

Hope a fix soon about that :)

commented

This issue does not persist if you only have CodeChickenCore/Lib installed. NEI is the main offender. Trying to make sure this issue is still alive and aware of. Thanks.

commented

Same bug, instant crash. No need for a log I'm sure but wanted to keep this going

commented

I have finally found the source of this problem, and it's rather stupid.

NEI patches in an entirely new method to GuiContainer, which initializes a field (which it also patches in). Before doing this, it invokes super. Here's what the generated method looks like decompiled:

The problem is that the iChisel GUI calls updateScreen() from initGui() which is called from setWorldAndResolution, and thus the manager field has not been initialized yet. We do this to assure there are no "blinks" between the open of the GUI and the first draw pass, as updateScreen does some state processing.

The preferred fix would be to remove this patching altogether, of course. However, I think in the mean time I can trycatch the updateScreen() call, and you can initialize the field before calling super (you can still call load after, if necessary).

commented

Sounds awesome that you figured it out.
How does that translate to the lamen? Just copy a script or we gotta put in some fancy coding into console everytime we want to use it?

commented

There are updates out for NEI and Chisel which on both ends solves this problem. Go ahead and update.

commented

Not for NEI yet. Got some other fixes to push at the same time. Today tho.

commented

It would be on the site, just didnt hit the magical button to push to curse :P. Should be on curse now.

commented

Oh, I checked the site and saw a new release I thought...