--- a/net/minecraft/world/item/crafting/RecipeHolder.java
+++ b/net/minecraft/world/item/crafting/RecipeHolder.java
@@ -1,30 +1,41 @@
 package net.minecraft.world.item.crafting;
 
 import net.minecraft.resources.ResourceLocation;
+// CraftBukkit start
+import org.bukkit.craftbukkit.v1_20_R2.util.CraftNamespacedKey;
+import org.bukkit.inventory.Recipe;
+
+public record RecipeHolder<T extends net.minecraft.world.item.crafting.Recipe<?>>(ResourceLocation id, T value) {
+
+    public final Recipe toBukkitRecipe() {
+        return this.value.toBukkitRecipe(CraftNamespacedKey.fromMinecraft(this.id));
+    }
+    // CraftBukkit end
 
-public record RecipeHolder<T extends Recipe<?>>(ResourceLocation id, T value) {
-    @Override
     public boolean equals(Object object) {
         if (this == object) {
             return true;
         } else {
+            boolean flag;
+
             if (object instanceof RecipeHolder) {
-                RecipeHolder<?> recipeHolder = (RecipeHolder)object;
-                if (this.id.equals(recipeHolder.id)) {
-                    return true;
+                RecipeHolder<?> recipeholder = (RecipeHolder) object;
+
+                if (this.id.equals(recipeholder.id)) {
+                    flag = true;
+                    return flag;
                 }
             }
 
-            return false;
+            flag = false;
+            return flag;
         }
     }
 
-    @Override
     public int hashCode() {
         return this.id.hashCode();
     }
 
-    @Override
     public String toString() {
         return this.id.toString();
     }
