Merge pull request #3588 from Darkere/fix/GH-3442/fix-jei-transfer
fix: crash when tranferring items
This commit is contained in:
@@ -7,6 +7,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed JEI transfer for larger processing recipes
|
||||||
|
|
||||||
## [1.12.3] - 2023-07-07
|
## [1.12.3] - 2023-07-07
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
@@ -19,7 +19,7 @@ import net.minecraft.client.gui.screens.Screen;
|
|||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.inventory.MenuType;
|
import net.minecraft.world.inventory.MenuType;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.crafting.CraftingRecipe;
|
import net.minecraft.world.item.crafting.Recipe;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
@@ -127,7 +127,13 @@ public class GridRecipeTransferHandler implements IRecipeTransferHandler<GridCon
|
|||||||
private void moveItems(GridContainerMenu gridContainer, Object recipe, IRecipeSlotsView recipeLayout, Player player) {
|
private void moveItems(GridContainerMenu gridContainer, Object recipe, IRecipeSlotsView recipeLayout, Player player) {
|
||||||
this.lastTransferTimeMs = System.currentTimeMillis();
|
this.lastTransferTimeMs = System.currentTimeMillis();
|
||||||
|
|
||||||
if (gridContainer.getGrid().getGridType() == GridType.PATTERN && !(recipe instanceof CraftingRecipe)) {
|
boolean isCraftingRecipe = false;
|
||||||
|
if(recipe instanceof Recipe<?> castRecipe)
|
||||||
|
{
|
||||||
|
isCraftingRecipe = castRecipe.getType() == net.minecraft.world.item.crafting.RecipeType.CRAFTING;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gridContainer.getGrid().getGridType() == GridType.PATTERN && !isCraftingRecipe) {
|
||||||
moveForProcessing(recipeLayout, gridContainer, player);
|
moveForProcessing(recipeLayout, gridContainer, player);
|
||||||
} else {
|
} else {
|
||||||
move(recipeLayout);
|
move(recipeLayout);
|
||||||
|
@@ -13,7 +13,7 @@ import net.minecraftforge.network.NetworkEvent;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
public class GridTransferMessage {
|
public class GridTransferMessage {
|
||||||
private final ItemStack[][] recipe = new ItemStack[9][];
|
private ItemStack[][] recipe;
|
||||||
List<List<ItemStack>> inputs;
|
List<List<ItemStack>> inputs;
|
||||||
|
|
||||||
public GridTransferMessage() {
|
public GridTransferMessage() {
|
||||||
@@ -26,6 +26,7 @@ public class GridTransferMessage {
|
|||||||
public static GridTransferMessage decode(FriendlyByteBuf buf) {
|
public static GridTransferMessage decode(FriendlyByteBuf buf) {
|
||||||
GridTransferMessage msg = new GridTransferMessage();
|
GridTransferMessage msg = new GridTransferMessage();
|
||||||
int slots = buf.readInt();
|
int slots = buf.readInt();
|
||||||
|
msg.recipe = new ItemStack[slots][];
|
||||||
for (int i = 0; i < slots; i++) {
|
for (int i = 0; i < slots; i++) {
|
||||||
int numberOfIngredients = buf.readInt();
|
int numberOfIngredients = buf.readInt();
|
||||||
msg.recipe[i] = new ItemStack[numberOfIngredients];
|
msg.recipe[i] = new ItemStack[numberOfIngredients];
|
||||||
|
Reference in New Issue
Block a user