diff --git a/CHANGELOG.md b/CHANGELOG.md index b75b1f874..13a9c9df1 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ ### 1.9.6 - Port to Minecraft 1.16.3 (raoulvdberge) - Added colored block variants (Darkere) +- Added functionality to show missing items in the JEI transfer screen (Darkere) +- Added functionality to request missing items from autocrafting in the JEI transfer screen (Darkere) - Added client config option to remember the Grid search query (raoulvdberge) - Fixed Portable Grid losing enchantments when placing and breaking (raoulvdberge) diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/jei/GridRecipeTransferHandler.java b/src/main/java/com/refinedmods/refinedstorage/integration/jei/GridRecipeTransferHandler.java index c7155d315..431adbca7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/jei/GridRecipeTransferHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/jei/GridRecipeTransferHandler.java @@ -38,24 +38,22 @@ public class GridRecipeTransferHandler implements IRecipeTransferHandler { - RS.NETWORK_HANDLER.sendToServer(new GridCraftingPreviewRequestMessage(id, count, Screen.hasShiftDown(), false)); - }); - } else if (doTransfer) { - moveItems(container, recipeLayout); - } else { - return new RecipeTransferGridError(tracker); - } + if (tracker.hasMissing() && !doTransfer) { + return new RecipeTransferGridError(tracker); + } else if (tracker.hasMissing() && doTransfer && Screen.hasControlDown()) { + tracker.getCraftingRequests().forEach((id, count) -> { + RS.NETWORK_HANDLER.sendToServer(new GridCraftingPreviewRequestMessage(id, count, Screen.hasShiftDown(), false)); + }); + } else if (doTransfer) { + moveItems(container, recipeLayout); } return null; } - private IngredientTracker trackItems(GridContainer container, IRecipeLayout recipeLayout, PlayerEntity player) { + private IngredientTracker createTracker(GridContainer container, IRecipeLayout recipeLayout, PlayerEntity player) { IngredientTracker tracker = new IngredientTracker(recipeLayout); if (!(container.getScreenInfoProvider() instanceof GridScreen)) { return tracker; @@ -139,6 +137,4 @@ public class GridRecipeTransferHandler implements IRecipeTransferHandler