--- a/net/minecraft/world/item/crafting/RecipeHolder.java +++ b/net/minecraft/world/item/crafting/RecipeHolder.java @@ -5,8 +5,19 @@ import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceKey; +// CraftBukkit start +import org.bukkit.craftbukkit.util.CraftNamespacedKey; +import org.bukkit.inventory.Recipe; +// CraftBukkit end + public record RecipeHolder>(ResourceKey> id, T value) { + // CraftBukkit start + public final Recipe toBukkitRecipe() { + return this.value.toBukkitRecipe(CraftNamespacedKey.fromMinecraft(this.id.location())); + } + // CraftBukkit end + public static final StreamCodec> STREAM_CODEC = StreamCodec.composite(ResourceKey.streamCodec(Registries.RECIPE), RecipeHolder::id, IRecipe.STREAM_CODEC, RecipeHolder::value, RecipeHolder::new); public boolean equals(Object object) {