KubeJS-Mods / KubeJS

https://kubejs.com
GNU Lesser General Public License v3.0
309 stars 91 forks source link

Failed to encode packet 'clientbound/minecraft:update_recipes' Caused by: io.netty.handler.codec.EncoderException: Empty ItemStack not allowed #878

Closed jahirxtrap closed 3 months ago

jahirxtrap commented 3 months ago

Minecraft Version

1.21.1

KubeJS Version

2100.7.0-build.119

Rhino Version

2100.2.5-build.46

Architectury Version

13.0.6-neoforge

Forge/Fabric Version

NeoForge 21.1.4

Describe your issue

I tested using my mod Iron Bookshelves alongside KubeJS (I simply added the mod without making any other changes). It seems that when a tag used in a recipe has no items, the world fails to load and displays an error message. The normal behavior should be that the recipe simply doesn't load, but when using KubeJS, the world itself fails to load. This error occurs with any mod that uses a tag with no items in JSON crafting table recipes.

Crash report/logs

latest.log

ChiefArug commented 3 months ago

You really shouldn't have an empty tag be used in a recipe. Use the neoforge:tag_empty load condition to stop your recipe from attempting to load if the tag is empty.

jahirxtrap commented 3 months ago

I'm familiar with conditional recipes (I'm also a modder), but the point is that KubeJS overrides the normal game behavior I mentioned. If this is something that can't be changed, I have no other option but to "adapt" to how this mod handles recipes.

LatvianModder commented 3 months ago

Looking into this, imo you should still add conditional json key for tagged recipes but KubeJS also shouldn't be crashing like this. it should fail the recipe on server loading side, not network side, so I will see if I can patch this. but I recommend you add that conditional key too