server crash when linking collector crystal to crystal lens
meiskam opened this issue ยท 5 comments
server crashes when clicking on the lens pointed at in the screenshot
mc: 1.16.4
forge: 1.16.4-35.1.36
astralsorcery: 1.16.4-1.13.9
modpack: explorico 1.16.4-1.7
crash log: https://pastebin.com/raw/KsVCHB4B
in-game screenshot: https://i.imgur.com/Wznl9Qw.jpg
[19:50:07] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception
java.lang.NullPointerException: null
at hellfirepvp.astralsorcery.common.crystal.CrystalCalculations.calculate(CrystalCalculations.java:36) ~[astralsorcery:1.16.4-1.13.9] {re:classloading}
at hellfirepvp.astralsorcery.common.crystal.CrystalCalculations.getThroughputMultiplier(CrystalCalculations.java:103) ~[astralsorcery:1.16.4-1.13.9] {re:classloading}
at hellfirepvp.astralsorcery.common.starlight.network.TransmissionChain.recBuildChain(TransmissionChain.java:108) ~[astralsorcery:1.16.4-1.13.9] {re:classloading}
at hellfirepvp.astralsorcery.common.starlight.network.TransmissionChain.recBuildChain(TransmissionChain.java:136) ~[astralsorcery:1.16.4-1.13.9] {re:classloading}
at hellfirepvp.astralsorcery.common.starlight.network.TransmissionChain.buildFromSource(TransmissionChain.java:74) ~[astralsorcery:1.16.4-1.13.9] {re:classloading}
at hellfirepvp.astralsorcery.common.starlight.network.TransmissionChain.buildNetworkChain(TransmissionChain.java:58) ~[astralsorcery:1.16.4-1.13.9] {re:classloading}
at hellfirepvp.astralsorcery.common.starlight.network.TransmissionWorldHandler.buildNetworkChain(TransmissionWorldHandler.java:134) ~[astralsorcery:1.16.4-1.13.9] {re:classloading}
at hellfirepvp.astralsorcery.common.starlight.network.TransmissionWorldHandler.tick(TransmissionWorldHandler.java:75) ~[astralsorcery:1.16.4-1.13.9] {re:classloading}
at hellfirepvp.astralsorcery.common.starlight.network.StarlightTransmissionHandler.tick(StarlightTransmissionHandler.java:47) ~[astralsorcery:1.16.4-1.13.9] {re:classloading}
at hellfirepvp.observerlib.common.util.tick.TickManager.worldTick(TickManager.java:63) ~[observerlib:1.16.4-1.5.1] {re:classloading}
at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:247) ~[eventbus-3.0.5-service.jar:?] {}
at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:239) ~[eventbus-3.0.5-service.jar:?] {}
at com.performant.coremod.event.EventHandlerB.post(EventHandlerB.java:175) ~[performant:1.16.2-4-3.30m] {re:mixin,re:classloading}
at com.performant.coremod.event.EventHandlerB.onPostWorldTick(EventHandlerB.java:74) ~[performant:1.16.2-4-3.30m] {re:mixin,re:classloading}
at net.minecraftforge.fml.hooks.BasicEventHooks.onPostWorldTick(BasicEventHooks.java:524) ~[forge:?] {re:mixin,re:classloading,pl:mixin:APP:performant.mixins.json:forge.BasicEventHooksMixin,pl:mixin:A}
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:856) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:APP:jaopca.mixins.json:MinecraftServerMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:291) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:786) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:APP:jaopca.mixins.json:MinecraftServerMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:641) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:APP:jaopca.mixins.json:MinecraftServerMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.lambda$startServer$0(MinecraftServer.java:232) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:APP:jaopca.mixins.json:MinecraftServerMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at java.lang.Thread.run(Unknown Source) [?:1.8.0_271] {}
[19:50:07] [Server thread/FATAL] [ne.mi.co.ForgeMod/]: Preparing crash report with UUID 20c1f261-41fe-4e47-aafc-07ee5c6c4ff2
This appears to be caused by a lens or crystal without any attributes, and a missing null check.
Makes sense, I had 3 lenses get stripped of nbt tags when placed with the copy-paste gadget.
"Not my Mod"? lol? there are many ways nbt can become corrupted, and this mod causes the entire server to crash when that happens. a simple check if data exists can fix this
No, all that PR does it prevent the crash. It doesn't actually "Fix" anything. What should that use for stats? Should it blow up the lens? It's not going to transmit anything, after all. Then come bug reports for "why isn't this working?".
NBT should not become corrupted unless a mod is doing something it should not be doing, or there's an underlying bug.