Path To Dirt

Path To Dirt

2M Downloads

Crash with Minecraft 1.18.2 and Forge 40.1.57

Crystal-Spider opened this issue ยท 3 comments

commented

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.

commented

Pretty sure it's the other mod's problem missing the context. The context should never be null

commented

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.

commented

Fixed for the other mod.