diff --git a/src/main/java/com/minelittlepony/unicopia/container/SpellbookScreenHandler.java b/src/main/java/com/minelittlepony/unicopia/container/SpellbookScreenHandler.java index af24c961..345412b8 100644 --- a/src/main/java/com/minelittlepony/unicopia/container/SpellbookScreenHandler.java +++ b/src/main/java/com/minelittlepony/unicopia/container/SpellbookScreenHandler.java @@ -166,7 +166,7 @@ public class SpellbookScreenHandler extends ScreenHandler { .findFirst() .filter(recipe -> result.shouldCraftRecipe(world, (ServerPlayerEntity)this.inventory.player, recipe)) .map(recipe -> recipe.craft(input)) - .orElse(input.getTraits().applyTo(UItems.BOTCHED_GEM.getDefaultStack())) : ItemStack.EMPTY; + .orElseGet(this::getFallbackStack) : ItemStack.EMPTY; outputSlot.setStack(resultStack); setPreviousTrackedSlot(outputSlot.id, resultStack); @@ -175,6 +175,15 @@ public class SpellbookScreenHandler extends ScreenHandler { }); } + private ItemStack getFallbackStack() { + ItemStack gemStack = gemSlot.getStack(); + if (gemStack.isOf(UItems.GEMSTONE) || gemStack.isOf(UItems.BOTCHED_GEM)) { + return input.getTraits().applyTo(UItems.BOTCHED_GEM.getDefaultStack()); + } + + return ItemStack.EMPTY; + } + @Override public ItemStack transferSlot(PlayerEntity player, int index) { Slot sourceSlot = slots.get(index);