PneumaticCraft: Repressurized

PneumaticCraft: Repressurized

50M Downloads

NPE with world save after mod update

pyure opened this issue ยท 7 comments

commented

Minecraft Version

1.12.2

Forge Version

2835

Mod Version

pneumaticcraft-repressurized-1.12.2-0.10.4-343.jar

Describe your problem, including steps to reproduce it

After updating Pneumaticraft and adding a script to leverage the new plastic mixer capability, I get the attached NPE while loading an existing world save.

https://pastebin.com/aA4e7FSb

  • Ruled out script as the problem (world load crashed and worked randomly regardless of whether the script was in place)
  • Seems to crash nearly every time (only 2/20 successful world loads)
  • Probably irrelevant, but noticed my Pressure Chamber was leaking air (sometimes happens after updating the mod), so I broke/rebuilt the structure. Didn't help.
  • Tested NEW worlds, they seem fine
  • Tested loading one of those NEW worlds, those also seem fine.

Because of the "random" nature of the crash, its hard for me to isolate any further.

Any other comments?

  • Does not seem to affect new worlds.
  • Affected world has only a few PC things in it: Pressure Chamber, drone programmer, heat frames on chests, liquid hopper, creative compressor, vortex tube, plastic mixer come to mind

New Plastic Mixer script if its relevant

import mods.pneumaticcraft.liquidplastic;
// Plastic Mixer Alternatives
mods.pneumaticcraft.liquidplastic.addLiquidPlastic(<liquid:oil>, 1000);

Full script if its relevant:
https://pastebin.com/6iPje3NK

commented

Good to know. The leaking valve problem could be difficult to track down - think I've seen it one or twice, but never been able to reproduce it reliably.

Anyway, I'll get a 0.10.5 release out today with that fix.

commented

Fixed in 0.10.5 release.

commented

Hmm. Seems like a null ItemStack has crept in somehow, though I can't see how from perusing the code.

What I can do is add a little sanity checking to the PacketUpdateGui.writeField method to check for a null ItemStack and send ItemStack.EMPTY if found (just to note: the code in question is sync'ing TE data to the client when chunks are loaded). It may turn out to be just a band-aid but it does seem like we're getting bad data loaded from the world somehow.

commented

Can you give build 345 a go from https://jenkins.k-4u.nl/job/PneumaticCraft-Repressurized/ and let me know if it helps?

commented

Certainly can.

commented

desht, ran the jar through three tests. All three succeeded in loading the world as expected.

The first attempt gave me the "leaking pressure tank" problem, which I resolved by breaking/rebuilding the multiblock. Subsequent world-loads were issue-free.

commented

Thanks desht