diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/BlastingRecipeMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/BlastingRecipeMixin.java index fba70092..71e6b49e 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/BlastingRecipeMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/BlastingRecipeMixin.java @@ -1,6 +1,7 @@ package io.izzel.arclight.common.mixin.core.world.item.crafting; import io.izzel.arclight.common.bridge.core.item.crafting.IRecipeBridge; +import io.izzel.arclight.common.mod.util.ArclightSpecialRecipe; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.AbstractCookingRecipe; @@ -23,6 +24,9 @@ public abstract class BlastingRecipeMixin extends AbstractCookingRecipe implemen @Override public Recipe bridge$toBukkitRecipe() { + if (this.result.isEmpty()) { + return new ArclightSpecialRecipe(this); + } CraftItemStack result = CraftItemStack.asCraftMirror(this.result); CraftBlastingRecipe recipe = new CraftBlastingRecipe(CraftNamespacedKey.fromMinecraft(this.getId()), result, CraftRecipe.toBukkit(this.ingredient), this.experience, this.cookingTime); recipe.setGroup(this.group); diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/CampfireCookingRecipeMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/CampfireCookingRecipeMixin.java index 41524376..09e3ae49 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/CampfireCookingRecipeMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/CampfireCookingRecipeMixin.java @@ -1,6 +1,7 @@ package io.izzel.arclight.common.mixin.core.world.item.crafting; import io.izzel.arclight.common.bridge.core.item.crafting.IRecipeBridge; +import io.izzel.arclight.common.mod.util.ArclightSpecialRecipe; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.AbstractCookingRecipe; @@ -23,6 +24,9 @@ public abstract class CampfireCookingRecipeMixin extends AbstractCookingRecipe i @Override public Recipe bridge$toBukkitRecipe() { + if (this.result.isEmpty()) { + return new ArclightSpecialRecipe(this); + } CraftItemStack result = CraftItemStack.asCraftMirror(this.result); CraftCampfireRecipe recipe = new CraftCampfireRecipe(CraftNamespacedKey.fromMinecraft(this.getId()), result, CraftRecipe.toBukkit(this.ingredient), this.experience, this.cookingTime); recipe.setGroup(this.group); diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/FurnaceRecipeMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/FurnaceRecipeMixin.java index 4467a2fa..6dd6cfc9 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/FurnaceRecipeMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/FurnaceRecipeMixin.java @@ -1,6 +1,7 @@ package io.izzel.arclight.common.mixin.core.world.item.crafting; import io.izzel.arclight.common.bridge.core.item.crafting.IRecipeBridge; +import io.izzel.arclight.common.mod.util.ArclightSpecialRecipe; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.AbstractCookingRecipe; @@ -23,6 +24,9 @@ public abstract class FurnaceRecipeMixin extends AbstractCookingRecipe implement @Override public Recipe bridge$toBukkitRecipe() { + if (this.result.isEmpty()) { + return new ArclightSpecialRecipe(this); + } CraftItemStack result = CraftItemStack.asCraftMirror(this.result); CraftFurnaceRecipe recipe = new CraftFurnaceRecipe(CraftNamespacedKey.fromMinecraft(this.id), result, CraftRecipe.toBukkit(this.ingredient), this.experience, this.cookingTime); diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/ShapedRecipeMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/ShapedRecipeMixin.java index 157120d5..5686c454 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/ShapedRecipeMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/ShapedRecipeMixin.java @@ -28,7 +28,7 @@ public abstract class ShapedRecipeMixin implements IRecipeBridge { @Override public Recipe bridge$toBukkitRecipe() { - if (this.getWidth() < 0 || this.getWidth() > 3 || this.getHeight() < 0 || this.getHeight() > 3) { + if (this.getWidth() < 1 || this.getWidth() > 3 || this.getHeight() < 1 || this.getHeight() > 3 || this.result.isEmpty()) { return new ArclightSpecialRecipe((net.minecraft.world.item.crafting.Recipe) this); } CraftItemStack result = CraftItemStack.asCraftMirror(this.result); diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/ShapelessRecipeMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/ShapelessRecipeMixin.java index 1db4e081..f2ffeeb3 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/ShapelessRecipeMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/ShapelessRecipeMixin.java @@ -1,6 +1,7 @@ package io.izzel.arclight.common.mixin.core.world.item.crafting; import io.izzel.arclight.common.bridge.core.item.crafting.IRecipeBridge; +import io.izzel.arclight.common.mod.util.ArclightSpecialRecipe; import net.minecraft.core.NonNullList; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; @@ -20,12 +21,15 @@ public class ShapelessRecipeMixin implements IRecipeBridge { @Shadow @Final ItemStack result; @Shadow @Final String group; @Shadow @Final NonNullList ingredients; - // @formatter:off + // @formatter:on @Override public Recipe bridge$toBukkitRecipe() { + if (this.result.isEmpty()) { + return new ArclightSpecialRecipe((ShapelessRecipe) (Object) this); + } CraftItemStack result = CraftItemStack.asCraftMirror(this.result); - CraftShapelessRecipe recipe = new CraftShapelessRecipe(result, (ShapelessRecipe)(Object) this); + CraftShapelessRecipe recipe = new CraftShapelessRecipe(result, (ShapelessRecipe) (Object) this); recipe.setGroup(this.group); for (Ingredient list : this.ingredients) { recipe.addIngredient(CraftRecipe.toBukkit(list)); diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/SmithingRecipeMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/SmithingRecipeMixin.java index 97459227..1a931ce3 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/SmithingRecipeMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/SmithingRecipeMixin.java @@ -1,6 +1,7 @@ package io.izzel.arclight.common.mixin.core.world.item.crafting; import io.izzel.arclight.common.bridge.core.item.crafting.IRecipeBridge; +import io.izzel.arclight.common.mod.util.ArclightSpecialRecipe; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; @@ -26,6 +27,9 @@ public class SmithingRecipeMixin implements IRecipeBridge { @Override public Recipe bridge$toBukkitRecipe() { + if (this.result.isEmpty()) { + return new ArclightSpecialRecipe((UpgradeRecipe) (Object) this); + } CraftItemStack result = CraftItemStack.asCraftMirror(this.result); return new CraftSmithingRecipe(CraftNamespacedKey.fromMinecraft(this.id), result, CraftRecipe.toBukkit(this.base), CraftRecipe.toBukkit(this.addition)); } diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/SmokingRecipeMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/SmokingRecipeMixin.java index 532124eb..d7ef0264 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/SmokingRecipeMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/item/crafting/SmokingRecipeMixin.java @@ -1,6 +1,7 @@ package io.izzel.arclight.common.mixin.core.world.item.crafting; import io.izzel.arclight.common.bridge.core.item.crafting.IRecipeBridge; +import io.izzel.arclight.common.mod.util.ArclightSpecialRecipe; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.AbstractCookingRecipe; @@ -23,6 +24,9 @@ public abstract class SmokingRecipeMixin extends AbstractCookingRecipe implement @Override public Recipe bridge$toBukkitRecipe() { + if (this.result.isEmpty()) { + return new ArclightSpecialRecipe(this); + } CraftItemStack result = CraftItemStack.asCraftMirror(this.result); CraftSmokingRecipe recipe = new CraftSmokingRecipe(CraftNamespacedKey.fromMinecraft(this.getId()), result, CraftRecipe.toBukkit(this.ingredient), this.experience, this.cookingTime); recipe.setGroup(this.group);