diff --git a/patches/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java.patch b/patches/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java.patch index 354583ddd14..9a5f84e0339 100644 --- a/patches/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java.patch +++ b/patches/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java.patch @@ -61,6 +61,15 @@ ContainerHelper.saveAllItems(output, this.items); output.store("RecipesUsed", RECIPES_USED_CODEC, this.recipesUsed); } +@@ -214,7 +_,7 @@ + Item fuelItem = fuel.getItem(); + fuel.shrink(1); + if (fuel.isEmpty()) { +- ItemStackTemplate remainder = fuelItem.getCraftingRemainder(); ++ ItemStackTemplate remainder = fuel.getCraftingRemainder(); + items.set(1, remainder != null ? remainder.create() : ItemStack.EMPTY); + } + } @@ -248,7 +_,7 @@ } diff --git a/patches/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java.patch b/patches/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java.patch index 8f342ddeed6..b62f68f5057 100644 --- a/patches/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java.patch +++ b/patches/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java.patch @@ -8,14 +8,17 @@ ItemStack ingredient = items.get(3); PotionBrewing potionBrewing = level.potionBrewing(); -@@ -181,6 +_,7 @@ +@@ -181,8 +_,9 @@ items.set(dest, potionBrewing.mix(ingredient, items.get(dest))); } + net.neoforged.neoforge.event.EventHooks.onPotionBrewed(items); ingredient.shrink(1); - ItemStackTemplate remainder = ingredient.getItem().getCraftingRemainder(); +- ItemStackTemplate remainder = ingredient.getItem().getCraftingRemainder(); ++ ItemStackTemplate remainder = ingredient.getCraftingRemainder(); if (remainder != null) { + if (ingredient.isEmpty()) { + ingredient = remainder.create(); @@ -218,13 +_,13 @@ @Override diff --git a/src/main/java/net/neoforged/neoforge/common/extensions/IItemStackExtension.java b/src/main/java/net/neoforged/neoforge/common/extensions/IItemStackExtension.java index ce83389b347..c827f48d8ae 100644 --- a/src/main/java/net/neoforged/neoforge/common/extensions/IItemStackExtension.java +++ b/src/main/java/net/neoforged/neoforge/common/extensions/IItemStackExtension.java @@ -25,7 +25,6 @@ import net.minecraft.world.item.AdventureModePredicate; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.ItemStackTemplate; import net.minecraft.world.item.component.ItemAttributeModifiers; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.item.crafting.RecipeType; @@ -51,16 +50,6 @@ private ItemStack self() { return (ItemStack) this; } - /** - * ItemStack sensitive version of {@link Item#getCraftingRemainder()}. - * Returns a full ItemStack instance of the result. - * - * @return The resulting ItemStack - */ - default @Nullable ItemStackTemplate getCraftingRemainder() { - return self().getItem().getCraftingRemainder(self()); - } - /** * Returns the fuel burn time for this item stack. If it is zero, this item is not a fuel. *
diff --git a/src/main/java/net/neoforged/neoforge/common/extensions/ItemInstanceExtension.java b/src/main/java/net/neoforged/neoforge/common/extensions/ItemInstanceExtension.java
index 94c7da44141..c33956132bd 100644
--- a/src/main/java/net/neoforged/neoforge/common/extensions/ItemInstanceExtension.java
+++ b/src/main/java/net/neoforged/neoforge/common/extensions/ItemInstanceExtension.java
@@ -7,14 +7,17 @@
import net.minecraft.core.Holder;
import net.minecraft.core.component.DataComponents;
+import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemInstance;
import net.minecraft.world.item.ItemStack;
+import net.minecraft.world.item.ItemStackTemplate;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraft.world.item.enchantment.ItemEnchantments;
import net.neoforged.neoforge.common.ItemAbilities;
import net.neoforged.neoforge.common.ItemAbility;
import net.neoforged.neoforge.event.EventHooks;
+import org.jspecify.annotations.Nullable;
public interface ItemInstanceExtension {
private ItemInstance self() {
@@ -54,4 +57,14 @@ default int getEnchantmentLevel(Holder