Tool Belt

Tool Belt

51M Downloads

[Bug, Crash] Exception in server tick loop: java.lang.NoSuchMethodError

lunofe opened this issue ยท 2 comments

commented

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] {}
commented

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.

commented

Alright, thanks for looking into it, guess I'll ask the Mohist devs for compat then ๐Ÿ˜„