MineColonies

MineColonies

57M Downloads

Crash on opening Cook food requests

Cookiedust opened this issue ยท 8 comments

commented

Prerequisites

  • I am running the latest alpha version of MineColonies and Structurize for my Minecraft version.
  • I checked the MineColonies/Structurize wiki and made sure my issue is not covered there.
  • I made sure that this issue is not a duplicate of any existing issue.

Context

  • Minecraft Version: 1.16.5
  • MineColonies Version: 1.0.311-BETA
  • Structurize Version: 0.13.252-ALPHA
  • Related Mods and their Versions: Valhelsia 3 v3.4.7

Expected behavior

When there is an unfulfillable Cook request, open Cook's GUI, click on the Cook's Requests tab, tab opens to show current open requests that the Cook has made.

Actual behavior

When I click on the requests tab, the game crashes. It goes to the "world is saving" screen then exits the application. Additionally, when requesting food (not fuel), the Cook does not have a name in the clipboard, nor do the food icons show up to the left of the request, as fuel does (see image).

image

Steps to reproduce the issue

  1. Make sure the cook has an open food request in the clipboard (unfulfillable by warehouse).
  2. Open the Cook's GUI and try to select the requests tab.
  3. The game exits, tries to save, then crashes.

Logs

Notes

Possibly linked to the Cook not having a name when requesting food. If this is the case, this is also creating a cascading issue with Advanced Peripherals (when calling getRequests(), it returns a null pointer exception stemming from the getRequesterDisplayName(...) function). Stack trace here: https://gist.github.com/Cookiedust/41ca89beb98a409d990a63145dce935f


Viewers

  • Add a thumbs-up to the bug report if you are also affected. This helps the bug report become more visible to the team and doesn't clutter the comments.
  • Add a comment if you have any insights or background information that isn't already part of the conversation.
commented

I can't reproduce this at all. Is the list of food at the cook empty?

commented

Hello, I am experiencing the same issue. I am refraining from entering the Requests tab as that as the cause of the crash, but this is what the Food selection tab looks like. There are no options to choose. This is the same case as the Fuel selection tab.
ERROR
I can say that my first cook worked fine, but then she died and was replaced by another NPC. I have then experienced the issue mentioned above.

commented

Is this on a server?

commented

Is this on a server?

Yes. It is running Forge 1.16.5-36.2.21

commented

Is this on a server?

Hello,

I have read past Issues and saw that relogging solved the issue. I did this and saw it was true and that my selections have now reappeared. I looked in my console log and saw this error upon first joining the server (which was not apparent in sequential tries):

[20:08:26] [Netty Epoll Server IO #2/WARN] [mixin/]: Mixin apply failed performant.mixins.json:connection.NettyCompressionDecoderMixin -> net.minecraft.network.NettyCompressionDecoder: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("INVOKE") on net/minecraft/network/NettyCompressionDecoder::onTooLarge with priority 98 cannot inject into net/minecraft/network/NettyCompressionDecoder::decode(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V merged by com.connectivity.mixin.NettyCompressionDecoderMixin with priority 99 [ -> handler$bgj000$onTooLarge(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V -> Prepare] org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("INVOKE") on net/minecraft/network/NettyCompressionDecoder::onTooLarge with priority 98 cannot inject into net/minecraft/network/NettyCompressionDecoder::decode(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V merged by com.connectivity.mixin.NettyCompressionDecoderMixin with priority 99 [ -> handler$bgj000$onTooLarge(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V -> Prepare] at org.spongepowered.asm.mixin.injection.code.Injector.findTargetNodes(Injector.java:305) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.mixin.injection.code.Injector.find(Injector.java:240) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.prepare(InjectionInfo.java:421) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1319) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1042) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:393) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:325) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:383) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:365) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:250) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.service.modlauncher.MixinTransformationHandler.processClass(MixinTransformationHandler.java:131) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at org.spongepowered.asm.launch.MixinLaunchPluginLegacy.processClass(MixinLaunchPluginLegacy.java:131) ~[mixin-0.8.4.jar:0.8.4+Jenkins-b308.git-2accda5000f7602229606b39437565542cc6fba4] {} at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:154) ~[modlauncher-8.0.9.jar:8.0.9+86+master.3cf110c] {} at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:85) ~[modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:265) ~[modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:136) ~[modlauncher-8.0.9.jar:?] {re:classloading} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:98) ~[modlauncher-8.0.9.jar:?] {re:classloading} at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_282] {} at net.minecraft.network.NetworkManager.func_179289_a(NetworkManager.java:339) ~[?:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A} at net.minecraft.network.login.ServerLoginNetHandler.lambda$handleAcceptedLogin$0(ServerLoginNetHandler.java:108) ~[?:?] {re:mixin,re:classloading,pl:mixin:APP:performant.mixins.json:connection.ServerLoginNetHandlerMixin,pl:mixin:APP:randompatches.mixins.json:timeouts.ServerLoginNetHandlerMixin,pl:mixin:APP:connectivity.mixins.json:ServerLoginNetHandlerMixin,pl:mixin:A} at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:162) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:95) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:30) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at net.minecraft.network.NetworkManager.lambda$sendPacket$5(NetworkManager.java:198) ~[?:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A} at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [server-1.16.5-20210115.111550-extra.jar:?] {} at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [server-1.16.5-20210115.111550-extra.jar:?] {} at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:313) [server-1.16.5-20210115.111550-extra.jar:?] {} at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) [server-1.16.5-20210115.111550-extra.jar:?] {} at java.lang.Thread.run(Thread.java:748) [?:1.8.0_282] {}

commented

Please paste in a gist

commented

I can't reproduce this at all. Is the list of food at the cook empty?

Is this on a server?

Apologies for the slow response! So firstly, yes it's on a server. Secondly, I think you're right that it's related to the empty list bug. I did some testing: when the food/fuel lists are blank, the crash on opening requests occurs; after loading SP to fix the blank list issue and loading back into the server (with now populated food/fuel lists), the game does NOT crash when opening requests.

commented

Should be solved