From f16728bb5fe21ff23db508f2ec0a170a9aec151d Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Wed, 27 Oct 2021 18:12:44 +0800 Subject: [PATCH] Provide more helpful error message iterating recipe --- .../common/mixin/bukkit/RecipeIteratorMixin.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/RecipeIteratorMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/RecipeIteratorMixin.java index 6253f0d9..75705548 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/RecipeIteratorMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/RecipeIteratorMixin.java @@ -1,6 +1,8 @@ package io.izzel.arclight.common.mixin.bukkit; import io.izzel.arclight.common.bridge.core.item.crafting.IRecipeBridge; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.crafting.RecipeType; import org.bukkit.craftbukkit.v.inventory.RecipeIterator; import org.bukkit.inventory.Recipe; import org.spongepowered.asm.mixin.Final; @@ -10,8 +12,6 @@ import org.spongepowered.asm.mixin.Shadow; import java.util.Iterator; import java.util.Map; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.crafting.RecipeType; @Mixin(value = RecipeIterator.class, remap = false) public class RecipeIteratorMixin { @@ -45,7 +45,13 @@ public class RecipeIteratorMixin { public Recipe next() { if (current == null || !current.hasNext()) { current = recipes.next().getValue().values().iterator(); + return next(); + } + net.minecraft.world.item.crafting.Recipe recipe = current.next(); + try { + return ((IRecipeBridge) recipe).bridge$toBukkitRecipe(); + } catch (Throwable e) { + throw new RuntimeException("Error converting recipe " + recipe.getId(), e); } - return ((IRecipeBridge) current.next()).bridge$toBukkitRecipe(); } }