Mekanism

Mekanism

111M Downloads

Mining a Wizardry Wisdom Tree with an Atomic Disassembler in vein mode causes crash

TigerWalts opened this issue ยท 1 comments

commented

Issue description:

When breaking Wisdom Trees with the Atomic Disassembler in Vein mode, an Exception is thrown when the loop finding all the blocks reaches a Wisdom Leaf Block.

The LibrarianLib getPickBlock() method requires the player argument to be non-null. When breaking multiple blocks, Mekanism calls this method with the argument set to null - ItemAtomicDisassembler.java:414.

This crash is similar to issue #5034 only this time the player argument is the cause and the call is being made from the Finder class' loop method.

Steps to reproduce:

  1. Place multiple Wisdom Wool Logs next to each other
  2. Place some Wisdom Leaves touching the Wisdom Wool Logs
  3. Set your Atomic Disassembler to Vein mode
  4. Mine the Wisdom Wood Logs

On SSP, the error will appear in the log, but the game will continue to run. On a Dedicated server, the Exception will cause the server to restart.

Version (make sure you are on the latest version before reporting):

Forge: 14.23.4.2715
Mekanism: 1.12.2-9.4.13.349
Wizardry: 0.8.5
LibrarianLib: 1.12.2-4.9
Modpack - All the Mods 3: 5.9.8d

If a (crash)log is relevant for this issue, link it here: (It's almost always relevant)

java.lang.IllegalArgumentException: Parameter specified as non-null is null: method com.teamwizardry.librarianlib.features.base.block.BlockModLeaves.getPickBlock, parameter player
	at com.teamwizardry.librarianlib.features.base.block.BlockModLeaves.getPickBlock(BlockModLeaves.kt)
	at mekanism.common.item.ItemAtomicDisassembler$Finder.loop(ItemAtomicDisassembler.java:414)
	at mekanism.common.item.ItemAtomicDisassembler$Finder.loop(ItemAtomicDisassembler.java:418)
	at mekanism.common.item.ItemAtomicDisassembler$Finder.calc(ItemAtomicDisassembler.java:425)
	at mekanism.common.item.ItemAtomicDisassembler.onBlockStartBreak(ItemAtomicDisassembler.java:163)
	at net.minecraft.server.management.PlayerInteractionManager.func_180237_b(PlayerInteractionManager.java:302)
	at net.minecraft.server.management.PlayerInteractionManager.func_73075_a(PlayerInteractionManager.java:109)
	at net.minecraft.entity.player.EntityPlayerMP.func_70071_h_(EntityPlayerMP.java:316)
	at net.minecraft.world.World.func_72866_a(World.java:1990)
	at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:832)
	at net.minecraft.world.World.func_72870_g(World.java:1952)
	at net.minecraft.world.WorldServer.func_184147_l(WorldServer.java:642)
	at net.minecraft.world.World.func_72939_s(World.java:1731)
	at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:613)
	at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:767)
	at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:396)
	at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
	at java.lang.Thread.run(Thread.java:748)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Server thread
Stacktrace:
	at com.teamwizardry.librarianlib.features.base.block.BlockModLeaves.getPickBlock(BlockModLeaves.kt)
	at mekanism.common.item.ItemAtomicDisassembler$Finder.loop(ItemAtomicDisassembler.java:414)
	at mekanism.common.item.ItemAtomicDisassembler$Finder.loop(ItemAtomicDisassembler.java:418)
	at mekanism.common.item.ItemAtomicDisassembler$Finder.calc(ItemAtomicDisassembler.java:425)
	at mekanism.common.item.ItemAtomicDisassembler.onBlockStartBreak(ItemAtomicDisassembler.java:163)
	at net.minecraft.server.management.PlayerInteractionManager.func_180237_b(PlayerInteractionManager.java:302)
	at net.minecraft.server.management.PlayerInteractionManager.func_73075_a(PlayerInteractionManager.java:109)
	at net.minecraft.entity.player.EntityPlayerMP.func_70071_h_(EntityPlayerMP.java:316)
	at net.minecraft.world.World.func_72866_a(World.java:1990)
	at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:832)
	at net.minecraft.world.World.func_72870_g(World.java:1952)
commented

I worked around this bug with TeamWizardry/LibrarianLib@87bd975