diff --git a/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/item/crafting/BookCloningRecipeMixin.java b/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/item/crafting/BookCloningRecipeMixin.java new file mode 100644 index 00000000..a67d935a --- /dev/null +++ b/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/item/crafting/BookCloningRecipeMixin.java @@ -0,0 +1,21 @@ +package io.izzel.arclight.mixin.core.item.crafting; + +import io.izzel.arclight.bridge.item.crafting.IRecipeBridge; +import io.izzel.arclight.mod.util.ArclightSpecialRecipe; +import net.minecraft.item.Items; +import net.minecraft.item.crafting.BookCloningRecipe; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.item.crafting.Ingredient; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.Recipe; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(BookCloningRecipe.class) +public class BookCloningRecipeMixin implements IRecipeBridge { + + @Override + public Recipe bridge$toBukkitRecipe() { + return ArclightSpecialRecipe.shapeless(new ItemStack(Material.WRITTEN_BOOK), (IRecipe) this, Ingredient.fromItems(Items.WRITTEN_BOOK)); + } +} diff --git a/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/item/crafting/IRecipeMixin.java b/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/item/crafting/IRecipeMixin.java index f2f8c335..c3ab15ab 100644 --- a/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/item/crafting/IRecipeMixin.java +++ b/arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/item/crafting/IRecipeMixin.java @@ -1,22 +1,27 @@ package io.izzel.arclight.mixin.core.item.crafting; import io.izzel.arclight.bridge.item.crafting.IRecipeBridge; +import io.izzel.arclight.mod.util.ArclightSpecialRecipe; +import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; +import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; import org.bukkit.inventory.Recipe; import org.spongepowered.asm.mixin.Mixin; -import io.izzel.arclight.mod.util.ArclightSpecialRecipe; +import org.spongepowered.asm.mixin.Shadow; @Mixin(IRecipe.class) public interface IRecipeMixin extends IRecipeBridge { + // @formatter:off + @Shadow ItemStack getRecipeOutput(); + // @formatter:on + default Recipe toBukkitRecipe() { return bridge$toBukkitRecipe(); } @Override default Recipe bridge$toBukkitRecipe() { - return ArclightSpecialRecipe.shapeless(new ItemStack(Material.AIR), (IRecipe) this); + return ArclightSpecialRecipe.shapeless(CraftItemStack.asCraftMirror(getRecipeOutput()), (IRecipe) this); } } diff --git a/arclight-coremod/src/main/resources/mixins.arclight.core.json b/arclight-coremod/src/main/resources/mixins.arclight.core.json index 92d6ea21..4cd361cf 100644 --- a/arclight-coremod/src/main/resources/mixins.arclight.core.json +++ b/arclight-coremod/src/main/resources/mixins.arclight.core.json @@ -287,6 +287,7 @@ "item.crafting.ArmorDyeRecipeMixin", "item.crafting.BannerDuplicateRecipeMixin", "item.crafting.BlastingRecipeMixin", + "item.crafting.BookCloningRecipeMixin", "item.crafting.CampfireCookingRecipeMixin", "item.crafting.FireworkRocketRecipeMixin", "item.crafting.FireworkStarFadeRecipeMixin",