
Crash with Minecraft 1.18.2 and Forge 40.1.57
Crystal-Spider opened this issue ยท 3 comments
I'm using Minecraft 1.18.2 and Forge 40.1.57 and I just got a crash with the following log:
java.lang.NullPointerException: Cannot invoke "net.minecraft.world.item.context.UseOnContext.m_43725_()" because "context" is null
at net.minecraftforge.common.extensions.IForgeBlock.getToolModifiedState(IForgeBlock.java:680) ~[forge-1.18.2-40.1.57-universal.jar%23173!/:?] {re:mixin,re:classloading}
at insane96mcp.pathtodirt.module.base.feature.BaseFeature.onRightClick(BaseFeature.java:61) ~[PathToDirt-1.4.2-mc1.18.2.jar%23138!/:1.4.2] {re:classloading}
at net.minecraftforge.eventbus.ASMEventHandler_16_BaseFeature_onRightClick_BlockToolModificationEvent.invoke(.dynamic) ~[?:?] {}
at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-5.0.3.jar%232!/:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-5.0.3.jar%232!/:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-5.0.3.jar%232!/:?] {}
at net.minecraftforge.event.ForgeEventFactory.onToolUse(ForgeEventFactory.java:382) ~[forge-1.18.2-40.1.57-universal.jar%23173!/:?] {re:classloading}
at mrunknown404.slabgen.block.SlabGrass.m_6227_(SlabGrass.java:46) ~[SlabGen-1.18.2-1.4.2.jar%23144!/:1.4.2] {re:classloading}
at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.m_60664_(BlockBehaviour.java:697) ~[client-1.18.2-20220404.173914-srg.jar%23168!/:?] {re:mixin,re:classloading,pl:mixin:APP:ferritecore.blockstatecache.mixin.json:BlockStateBaseMixin,pl:mixin:APP:snowrealmagic.mixins.json:BlockStateMixin,pl:mixin:A}
at net.minecraft.client.multiplayer.MultiPlayerGameMode.m_105262_(MultiPlayerGameMode.java:296) ~[client-1.18.2-20220404.173914-srg.jar%23168!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:mixins.ipnext.json:MixinScreenHandler,pl:mixin:A,pl:runtimedistcleaner:A}
at net.optifine.override.PlayerControllerOF.m_105262_(PlayerControllerOF.java:96) ~[OptiFine_1.18.2_HD_U_H7.jar%23174!/:?] {re:classloading}
at net.minecraft.client.Minecraft.m_91277_(Minecraft.java:1571) ~[client-1.18.2-20220404.173914-srg.jar%23168!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixin.dynamic_asset_generator.json:MinecraftMixin,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.m_91279_(Minecraft.java:1851) ~[client-1.18.2-20220404.173914-srg.jar%23168!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixin.dynamic_asset_generator.json:MinecraftMixin,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.m_91398_(Minecraft.java:1668) ~[client-1.18.2-20220404.173914-srg.jar%23168!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixin.dynamic_asset_generator.json:MinecraftMixin,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1019) ~[client-1.18.2-20220404.173914-srg.jar%23168!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixin.dynamic_asset_generator.json:MinecraftMixin,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:663) ~[client-1.18.2-20220404.173914-srg.jar%23168!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixin.dynamic_asset_generator.json:MinecraftMixin,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.main.Main.main(Main.java:205) ~[client-1.18.2-20220404.173914-srg.jar%23168!/:?] {re:classloading,pl:runtimedistcleaner:A}
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}
at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:31) ~[fmlloader-1.18.2-40.1.57.jar%2316!/:?] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.3.jar%235!/:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.3.jar%235!/:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.3.jar%235!/:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.3.jar%235!/:?] {}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.3.jar%235!/:?] {}
at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.3.jar%235!/:?] {}
at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.3.jar%235!/:?] {}
at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {}
and by a quick look at the code I believe the problem is caused by this piece of code here and it should be easily fixed by adding event.getContext() != null &&
before the other condition, like in the line below.
Pretty sure it's the other mod's problem missing the context. The context should never be null
I agree, I will open the issue on the other mod too.
However Forge specifically states that the context will never be null only from Minecraft 1.19, so it might make sense to add that extra check in your mod for 1.18.2.
Furthermore I say extra check, but actually you could do something like this:
|| event.getContext() != null && (
event.getState().getBlock().getToolModifiedState(event.getState(), event.getContext(), event.getToolAction(), true) != null
|| !event.getContext().getLevel().isEmptyBlock(event.getPos().above())
)
by grouping the check with the line below.