--- a/net/minecraft/world/item/crafting/RecipeItemStack.java
+++ b/net/minecraft/world/item/crafting/RecipeItemStack.java
@@ -35,6 +35,7 @@
     public ItemStack[] itemStacks;
     @Nullable
     private IntList stackingIds;
+    public boolean exact; // CraftBukkit
     public static final Codec<RecipeItemStack> CODEC = codec(true);
     public static final Codec<RecipeItemStack> CODEC_NONEMPTY = codec(false);
 
@@ -72,6 +73,15 @@
             for (int j = 0; j < i; ++j) {
                 ItemStack itemstack1 = aitemstack[j];
 
+                // CraftBukkit start
+                if (exact) {
+                    if (itemstack1.getItem() == itemstack.getItem() && ItemStack.isSameItemSameTags(itemstack, itemstack1)) {
+                        return true;
+                    }
+
+                    continue;
+                }
+                // CraftBukkit end
                 if (itemstack1.is(itemstack.getItem())) {
                     return true;
                 }
