[Bug, Crash] Exception in server tick loop: java.lang.NoSuchMethodError
lunofe opened this issue ยท 2 comments
Hi, I'm using the toolbelt mod on my server and it seems like it's possible to crash the server by placing items in the inventory's crafting grid while using the belt slot gui.
Versions
Minecraft: 1.16.5
Forge: 36.0.58
Server: Mohist (Forge & Bukkit/Spigot/Paper hybrid) version 1.16.5-400 (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT)
Toolbelt: 1.16.3-1.15.2
Crash
Description: Exception in server tick loop
java.lang.NoSuchMethodError: net.minecraft.inventory.container.WorkbenchContainer.func_217066_a(ILnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/inventory/CraftingInventory;Lnet/minecraft/inventory/CraftResultInventory;)V
at dev.gigaherz.toolbelt.common.BeltSlotContainer.func_75130_a(BeltSlotContainer.java:189) ~[toolbelt:1.15.2] {re:classloading}
at net.minecraft.inventory.CraftingInventory.func_70299_a(CraftingInventory.java:124) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.inventory.container.Slot.func_75215_d(Slot.java:61) ~[?:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.inventory.container.Container.func_241440_b_(Container.java:344) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.inventory.container.Container.func_184996_a(Container.java:226) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.network.play.ServerPlayNetHandler.func_147351_a(ServerPlayNetHandler.java:2297) ~[?:?] {re:mixin,re:classloading,pl:mixin:APP:performant.mixins.json:connection.ServerPlayNetHandlerMixin,pl:mixin:A}
at net.minecraft.network.play.client.CClickWindowPacket.func_148833_a(CClickWindowPacket.java:34) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.network.play.client.CClickWindowPacket.func_148833_a(CClickWindowPacket.java:12) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.network.PacketThreadUtil.func_225383_a(PacketThreadUtil.java:22) ~[?:?] {re:classloading}
at net.minecraft.util.concurrent.TickDelayedTask.run(SourceFile:18) ~[?:?] {re:classloading}
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213166_h(ThreadTaskExecutor.java:136) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.util.concurrent.RecursiveEventLoop.func_213166_h(SourceFile:23) ~[?:?] {re:classloading}
at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:873) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:183) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213168_p(ThreadTaskExecutor.java:109) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.func_213205_aW(MinecraftServer.java:856) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.func_213168_p(MinecraftServer.java:850) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213160_bf(ThreadTaskExecutor.java:97) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.func_213202_o(MinecraftServer.java:835) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:768) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:276) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_262] {}
Hi uh.... that method very definitely exists in mc/forge, I don't know why your special server would be missing it.
Looked it up, apparently Mohist changes this code without leaving a backward-compatible forwarder, so nothing I can do. Fixing it for Mohist would break it everywhere else.