GabrielOlvH / Industrial-Revolution

An Industrial mod made for Fabric.
Apache License 2.0
197 stars 58 forks source link

Crash with Colormatic when hovering over fluids in machines #354

Closed Justsnoopy30 closed 2 years ago

Justsnoopy30 commented 2 years ago

Reported exception thrown! net.minecraft.class_148: Rendering screen at net.minecraft.class_757.method_3192(class_757.java:883) at net.minecraft.class_310.method_1523(class_310.java:1112) at net.minecraft.class_310.method_1514(class_310.java:728) at net.minecraft.client.main.Main.main(Main.java:217) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:234) at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:65) at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28) Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.class_3610.method_15759()" because "state" is null at io.github.kvverti.colormatic.iface.ColormaticFluidRenderHandler.getFluidColor(ColormaticFluidRenderHandler.java:51) at me.steven.indrev.utils.FluidutilsKt.getTooltip(fluidutils.kt:136) at me.steven.indrev.gui.widgets.machines.WCustomBarKt$fluidTank$tank$1.addTooltip(WCustomBar.kt:118) at io.github.cottonmc.cotton.gui.widget.WWidget.renderTooltip(WWidget.java:351) at io.github.cottonmc.cotton.gui.client.CottonInventoryScreen.method_25394(CottonInventoryScreen.java:267) at net.minecraft.class_757.method_3192(class_757.java:874) ... 10 more Encountered exception while handling in channel with name "indrev:sync_property" java.lang.NullPointerException at me.steven.indrev.packets.client.GuiPropertySyncPacket.register$lambda-0(GuiPropertySyncPacket.kt:17) at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.receive(ClientPlayNetworkAddon.java:97) at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.receive(ClientPlayNetworkAddon.java:39) at net.fabricmc.fabric.impl.networking.AbstractChanneledNetworkAddon.handle(AbstractChanneledNetworkAddon.java:100) at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.handle(ClientPlayNetworkAddon.java:89) at net.minecraft.class_634.handler$eii000$handleCustomPayload(class_634.java:2411) at net.minecraft.class_634.method_11152(class_634.java) at net.minecraft.class_2658.method_11457(class_2658.java:60) at net.minecraft.class_2658.method_11054(class_2658.java:8) at net.minecraft.class_2535.method_10759(class_2535.java:163) at net.minecraft.class_2535.method_10770(class_2535.java:150) at net.minecraft.class_2535.channelRead0(class_2535.java:53) at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) at com.replaymod.recording.packet.PacketListener.channelRead(PacketListener.java:404) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:808) at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:408) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:308) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) at java.base/java.lang.Thread.run(Thread.java:831)

Justsnoopy30 commented 2 years ago

Linked colormatic issue: https://github.com/kvverti/colormatic/issues/65

kvverti commented 2 years ago

https://github.com/GabrielOlvH/Industrial-Revolution/blob/06d972d85bbf6b02f353398385d1744882d21f34/src/main/kotlin/me/steven/indrev/utils/fluidutils.kt#L136

You're passing null for the fluid state - this is a non-nullable parameter.

NiChrosia commented 2 years ago

Fixed in #356