
Bus Interface + Sneak + Click on some blocks = Crash
Bs0Dd opened this issue ยท 2 comments
When I sneak with Bus Interface in hand and click to some blocks like the Door, Button, placed Bus Interface and etc. Minecraft is crashes with this stacktrace:
java.lang.NullPointerException: Unexpected error
at li.cil.oc2.common.item.BusInterfaceItem.func_195945_b(BusInterfaceItem.java:90) ~[?:0.0.1] {re:classloading}
at net.minecraft.item.BlockItem.func_195942_a(BlockItem.java:51) ~[?:?] {re:classloading}
at li.cil.oc2.common.item.BusInterfaceItem.func_195942_a(BusInterfaceItem.java:58) ~[?:0.0.1] {re:classloading}
at net.minecraft.item.BlockItem.func_195939_a(BlockItem.java:39) ~[?:?] {re:classloading}
at li.cil.oc2.common.item.BusInterfaceItem.func_195939_a(BusInterfaceItem.java:52) ~[?:0.0.1] {re:classloading}
at net.minecraft.item.ItemStack.lambda$useOn$5(ItemStack.java:188) ~[?:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack}
at net.minecraft.item.ItemStack$$Lambda$6660/781975304.apply(Unknown Source) ~[?:?] {}
at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:203) ~[?:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack}
at net.minecraft.item.ItemStack.func_196084_a(ItemStack.java:188) ~[?:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack}
at net.minecraft.client.multiplayer.PlayerController.func_217292_a(PlayerController.java:301) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
at net.optifine.override.PlayerControllerOF.func_217292_a(PlayerControllerOF.java:97) ~[?:?] {re:classloading}
at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1366) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.func_184117_aA(Minecraft.java:1645) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1460) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:953) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.5-36.2.2.jar:36.2] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$446/698784309.call(Unknown Source) [forge-1.16.5-36.2.2.jar:36.2] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {}
As i think, Bus Interface fails placing on these blocks and throws an error.
While I couldn't reproduce this, the code path where this could happen should be fixed now. Thanks for reporting!
I don't claim to know anything, but that sounds right and that bus interface placing is trying to read some sort of attribute from block that doesn't exist in normal blocks but does in OC2 blocks. I think what probably needs to be done to fix this is when bus interface is trying to be placed, instead of getting attribute from placed on block instantly, it checks for if block has attribute and then moves on. In my head though that poses the question, "What happens when it doesn't have the attribute? Does it place anyways and not connect or something?"