package net.minecraft.world.inventory; import net.minecraft.core.NonNullList; import net.minecraft.world.Container; import net.minecraft.world.ContainerHelper; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.RecipeHolder; import org.jetbrains.annotations.Nullable; public class ResultContainer implements Container, RecipeCraftingHolder { private final NonNullList itemStacks = NonNullList.withSize(1, ItemStack.EMPTY); @Nullable private RecipeHolder recipeUsed; @Override public int getContainerSize() { return 1; } @Override public boolean isEmpty() { for (ItemStack itemStack : this.itemStacks) { if (!itemStack.isEmpty()) { return false; } } return true; } @Override public ItemStack getItem(int slot) { return this.itemStacks.get(0); } @Override public ItemStack removeItem(int slot, int amount) { return ContainerHelper.takeItem(this.itemStacks, 0); } @Override public ItemStack removeItemNoUpdate(int slot) { return ContainerHelper.takeItem(this.itemStacks, 0); } @Override public void setItem(int slot, ItemStack stack) { this.itemStacks.set(0, stack); } @Override public void setChanged() { } @Override public boolean stillValid(Player player) { return true; } @Override public void clearContent() { this.itemStacks.clear(); } @Override public void setRecipeUsed(@Nullable RecipeHolder recipe) { this.recipeUsed = recipe; } @Nullable @Override public RecipeHolder getRecipeUsed() { return this.recipeUsed; } }