EMI

EMI

1M Downloads

Crash when loading into world

mozzarellastick opened this issue ยท 3 comments

commented

Hi, when loading into a world, I'm getting this issue.

[11:00:42] [Thread-55/ERROR]: Uncaught exception in thread "Thread-55"
java.lang.NullPointerException: Cannot invoke "net.minecraft.class_638.method_8433()" because "dev.emi.emi.EmiRegistryImpl.client.field_1687" is null

For some more information, I did not get this info until I equipped some diving armor from yttr.

Here is a link to the entire log. https://pastebin.com/yVqvDBZT

commented

This is not the fault of EMI or Yttr; Yttr shows up last because it starts with a Y.

The ultimate cause is line 5049, which is an onCustomPayload mixin that isn't checking if an entity is null before trying to assign timeUntilRegen:

[11:00:40] [Netty Local Client IO #2/ERROR]: Exception occurred in netty pipeline
java.lang.NullPointerException: Cannot assign field "field_6008" because "e" is null
	at net.minecraft.class_634.handler$ebc004$onCustomPayload(class_634.java:16994) ~[client-intermediary.jar:?]
	at net.minecraft.class_634.method_11152(class_634.java) ~[client-intermediary.jar:?]
	at net.minecraft.class_2658.method_11457(class_2658.java:60) ~[client-intermediary.jar:?]
	at net.minecraft.class_2658.method_11054(class_2658.java:8) ~[client-intermediary.jar:?]
	at net.minecraft.class_2535.method_10759(class_2535.java:167) ~[client-intermediary.jar:?]
	at net.minecraft.class_2535.method_10770(class_2535.java:152) ~[client-intermediary.jar:?]
	at net.minecraft.class_2535.channelRead0(class_2535.java:50) ~[client-intermediary.jar:?]
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.local.LocalChannel.readInbound(LocalChannel.java:299) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.local.LocalChannel.finishPeerRead0(LocalChannel.java:445) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:50) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:403) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) [netty-common-4.1.77.Final.jar:?]
	at io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:54) [netty-transport-4.1.77.Final.jar:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995) [netty-common-4.1.77.Final.jar:?]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.77.Final.jar:?]
	at java.lang.Thread.run(Thread.java:833) [?:?]

The mixin isn't prefixed, so we can't know for sure who it is. It throws an exception in the packet handler, causing the singleplayer connection to be instantly closed and the world exited.

Meanwhile, EMI is asynchronously setting up all the items and recipes, and by the time it's done with that and wakes up, field_1687 (client.world) has been nulled because the world is closed. Every plugin is throwing this error, not just Yttr.

commented

Yes, I do actually. Apologies for being incorrect, and thank you for clearing that up for me. I'll try disabling that, making a new world has resolved it anyways. Really strange