Astral Sorcery

Astral Sorcery

63M Downloads

server crash when linking collector crystal to crystal lens

meiskam opened this issue ยท 5 comments

commented

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
commented

This appears to be caused by a lens or crystal without any attributes, and a missing null check.

commented

Makes sense, I had 3 lenses get stripped of nbt tags when placed with the copy-paste gadget.

commented

Sounds like a bug with copy-paste gadget if it isnt preserving nbt in copies.

commented

"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

commented

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.