Just Enough Items (JEI)

Just Enough Items (JEI)

392M Downloads

Error with addRecipeTransferHandler, Missing Items on an output slot. Error thrown when recipeSlotCount is set correctly

Lothrazar opened this issue ยท 2 comments

commented

Short version:

I have a recipe with 3 inputs and 1 output. But when i do
registry.addRecipeTransferHandler(ContainerSolidifier.class, SolidifierRecipeCategory.id,1, 3, ...)

A "does not work for container" error is thrown. When i change it to
registry.addRecipeTransferHandler(ContainerSolidifier.class, SolidifierRecipeCategory.id,1, 4, ...)
This error goes away, but now the transfer is broken because it is treating the OUTPUT slot as an input.

Long version with code links and screenshots

So i have a custom recipe that takes 3 items as input, and also uses some fluid, and produces 1 recipe as output.

So, similar to every other recipe, i have a addRecipeTransferHandler

https://github.com/Lothrazar/Cyclic/blob/ea92e651181998c325dc8a02ae81cd87e7fd90cd/src/main/java/com/lothrazar/cyclic/compat/jei/CyclicPluginJEI.java#L73

As shown in screenshot, there is an output slot on the right.
for jei

So i have recipeSlotStart = 1, this means to skip the output slot at zero
and then, what should be the case is that i use recipeSlotCount = 3, since there are 3 input slots

But if i put in recipeSlotCount =3 here ( we are talking about the second integer argument to addRecipeTransferHandler, which is really the fourth argument), then it errors with "does not work for container"

LOGGER.error("Recipe Transfer helper {} does not work for container {}", transferHelper.getClass(), container.getClass());

This doesnt make sense, as my recipe clearly has exactly 3 inputs. This is set both in my category and my recipe

Here, only slots 0,1,2 are set as inputs
https://github.com/Lothrazar/Cyclic/blob/ea92e651181998c325dc8a02ae81cd87e7fd90cd/src/main/java/com/lothrazar/cyclic/compat/jei/SolidifierRecipeCategory.java#L73

And also here
https://github.com/Lothrazar/Cyclic/blob/ea92e651181998c325dc8a02ae81cd87e7fd90cd/src/main/java/com/lothrazar/cyclic/block/solidifier/RecipeSolidifier.java#L42

Since JEI forces me to set this as 4, its treating the output slot as input. Meaning it tells me theres a "Missing item" for the OUTPUT slot
missing item

I tried checking out the wiki but it does not talk about these arguments at all, there is no info on the wiki about this
https://github.com/mezz/JustEnoughItems/wiki/Recipe-Transfer-Handlers

I hope this all makes sense. Please help, i am available on discord as well .

commented

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

commented

Thanks for the report!
You have 4 slots marked as inputs (all 4 have set input to true):
https://github.com/Lothrazar/Cyclic/blob/ea92e651181998c325dc8a02ae81cd87e7fd90cd/src/main/java/com/lothrazar/cyclic/compat/jei/SolidifierRecipeCategory.java#L82-L85

I will improve this error message to make it more clear what the issue is.