Ender IO Zoo

Ender IO Zoo

961k Downloads

Client crash on right-click on any Block in JEI

Bulldog83 opened this issue · 23 comments

commented

What happens:

Game crashes when I try to righ-click on EnderIO's machines in JEI, to see their recipes.

Affected Versions (Do not use "latest"):

  • EnderIO: 5.0.29
  • EnderCore: 0.5.35
  • Minecraft: 1.12.2
  • Forge: 14.23.4.2705

Your most recent log file where the issue was present:

https://gist.github.com/Bulldog83/7ec41d98060822c8ac983a0022430ae4

commented

Try reading the error message:

Fluid nc.fluid.FluidCoolant@b195b50 (redstone_nak, class nc.fluid.FluidCoolant) from item 1xitem.techreborn.cell@0 returned an unregistered block from getBlock(). This is a major bug in the mod that fluid belongs to.

(The fluid cell is innocent here, but I have no idea which mod "nc" belongs to)

commented

nuclear craft

commented

Ok, sorry. But before update this error didn't occur. And nor NuclearCraft or TechReborn did update too.

commented

Hey there - sorry about this. The way to fix this should be to head into the NC configs and enable the addition of fluid blocks to the game.

They are disabled by default because I had issues reported related to running out of block IDs, as NC adds hundreds of fluids which can send big packs over the limit.

EDIT: My mistake, again, but a different one :P

commented

I've set B:register_fluid_blocks=true in NuclearCraft config and this issue has gone. But I've taken new client crash on the same action.
https://gist.github.com/Bulldog83/54de91219d54bd696a5af1906acaa75d
Yes, this again is not an EnderIO issue, but... Why didn't these crashes exist before the update? (With NC I've understood).

commented

I'm guessing the NC crash snuck through as EIO was not originally checking for issues with fluids having unregistered blocks attached to them, and now they are.

commented

This crash occurs on right-cliking on any Block in JEI. And problem not only in "broken" blocks from another mods. I think, problem also in "crazypants.enderio.base.paint.PaintUtil".
https://gist.github.com/Bulldog83/f9e1fbd16b9cda11280294378f2e1b27

commented

same here no NC Installed
log says PaintUtil and Tinker_IO Fluid

https://gist.github.com/DaNeo61/85588caa6f3bb58ff8f03ec1aedccbea

commented

Bug in tinker io not registering their fluid as a block. Not an enderio bug

commented

I just thought of a temporary fix - maybe the issue can be prevented by using CraftTweaker to remove the offending fluids from JEI. I do not have time to test this right now, might test it later to see if it works.

commented

Set B:allowTileEntitiesAsPaintSource=false in EnderIO.cfg eliminates the problem.

commented

So throwing a good error message instead of just crashing randomly is bad coding in your eyes?

commented

On the one hand, your position in something is good. But on the other hand, when the mod pack has more than two hundred mods, this creates a very big problem.

commented

Mods like NuclearCraft intentionally do not register fluids because of block IDs, a very valid concern. I am aware that there is a mod to remove the limit but having too many IDs nevertheless increases network bandwidth substantially.

Just because Forge or something recommends registering unique blocks for fluids does not mean that Ender IO should simply crash the entire game when even one mod doesn't do it. Especially so since there's a good reason not to register a fluid, and that doing so usually does not cause serious consequences.

Oh, and EnderIO doesn't even offer an option to turn off the painting machine nor its JEI compatibility modules.

commented

@2001zhaozhao
tomdodd4598/NuclearCraft#333

They dont have to register there fluid to a block.... they could set it to null or not create the block object and then the painting machine would not break... and it would still work without taking more ids...

commented

That fix does not work for me. I can not look at the uses of cobblestone right now without crashing because some Factory Tech fluid doesn't add a block. If I remove Factory Tech I get another mod that doesn't have a fluid block, and so on. It is just bad coding to try to enforce something that many mods currently do not do.

I am downgrading to the previous version for the time being.

commented

Yep, that is my fault - I have fixed it in dev and will add a failsafe.

commented

As tyler said, there is no reason to make a block and attach it to a fluid if you don't register it. And handing out unregistered objects to other mods is just plain wrong,

commented

just try to install the latest version of tech reborn and maybe that will fix it

commented

One more, with Chisel
Chisel-Team/Chisel#721

commented

Hey, @Sunekaer, you posted a message to this ticket! Just thought I'd tell you, so you know!