From 4a73cae0942774e7767294b3810ccf1923543c0c Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 7 Oct 2022 09:03:24 +0200 Subject: [PATCH] Fixed being able to convert any item into botched gems --- .../unicopia/container/SpellbookScreenHandler.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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);