From 6ef0add1c71d018a967c5b4648c56cee63f8ecbb Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Sun, 17 May 2020 12:11:32 +0800 Subject: [PATCH] Add missing book cloning recipe info. Fix slimefun compatibility. --- .../item/crafting/BookCloningRecipeMixin.java | 21 +++++++++++++++++++ .../core/item/crafting/IRecipeMixin.java | 13 ++++++++---- .../main/resources/mixins.arclight.core.json | 1 + 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 arclight-coremod/src/main/java/io/izzel/arclight/mixin/core/item/crafting/BookCloningRecipeMixin.java 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",