Crash Report: Updating Screen Events
stephenmc608 opened this issue ยท 10 comments
I was using the Calcinator from EE3 to create Minium Dust. I put 8 Diamonds in the input slot and some Coal in the fuel slot. When I tried to take the Minium Dust out of the Calcinator, my game crashed with this report:
https://gist.github.com/stephenmc608/268534d0a8937bb9f52f
I submitted this to the EE3 GitHub, but they told me to submit it here.
BluePower Version: 0.2.892
EE3 Version: 0.2.433.
Forge Version: 10.13.2.1307
Can you log into your world again after this?
Can you make a pastebin of your EE3 config too?
This is fixed as of 5147ffa although there isn't a release version with this fix in yet. We'll get one out this weekend.
Ok. Thank you for the quick response!
GirafiStudios: I was able to log into my world, but every time that I tried to remove an item from the Calcinator or Aludel, I crashed.
Here is the EE3 Config: https://gist.github.com/stephenmc608/62221e4c4d6ad28ac0be
Try to break the Calcinator or Aludel instead ^^^
Your config looks just fine btw. ^^
FYI The Calcinator inventory length is 4. The line added in that commit won't change behavior for the Calcinator and (if that is the only change to fix this) still crash.
What should I have done instead, @Dynious? :P
A quick (dirty) fix could be add a inv.getSizeInvetory() > y * 3 + x check before this line:
Not ideal, the best thing to do is not assume the crafting area is 3*3, but that will probably require a lot of changes.
@Quetzi, that'll make it so it doesn't work in the player's crafting grid (and that's something I wanted to work). I'll try to tweak it a bit so it also works in the player's inventory, but that should at least prevent the crash from happening
I considered putting that check in the getItemAt method but I figured that method shouldn't be getting called unnecessarily anyway.
Wouldn't checking the 3x3 crash (or mess with) the player inventory crafting anyways?
What I'd do:
- Check if the IInventory given by the event is an instance of InventoryCrafting.
- Check the size of the inventory and decide if it's 2x2, 3x3 (or none of those (return null))
- Handle 2x2s and 3x3s with it's own code (you could get and save the up, down, left, right slots and have the same code for 2x2 and 3x3 after that).