diff --git a/xplat/src/main/java/lgbt/greenhouse/menderman/mixin/integration/jei/Mixin_IRecipeCategory.java b/xplat/src/main/java/lgbt/greenhouse/menderman/mixin/integration/jei/Mixin_IRecipeCategory.java index 324dc63..385b3dc 100644 --- a/xplat/src/main/java/lgbt/greenhouse/menderman/mixin/integration/jei/Mixin_IRecipeCategory.java +++ b/xplat/src/main/java/lgbt/greenhouse/menderman/mixin/integration/jei/Mixin_IRecipeCategory.java @@ -20,10 +20,17 @@ public interface Mixin_IRecipeCategory { @Inject(method = "onDisplayedIngredientsUpdate", at = @At("HEAD")) private void menderman$modifyJeiRepairMessage(T recipe, List recipeSlots, IFocusGroup focuses, CallbackInfo ci) { if (recipe instanceof IJeiAnvilRecipe anvilRecipe && anvilRecipe.getUid() != null) { - if (anvilRecipe.getUid().getPath().startsWith("anvil.materials_repair.")) { - Optional stack = recipeSlots.get(0).getDisplayedItemStack(); - Optional repairStack = recipeSlots.get(1).getDisplayedItemStack(); - if (stack.isPresent() && repairStack.isPresent()) { + Optional stack = recipeSlots.get(0).getDisplayedItemStack(); + Optional repairStack = recipeSlots.get(1).getDisplayedItemStack(); + if (stack.isPresent() && repairStack.isPresent()) { + if (anvilRecipe.getUid().getPath().startsWith("anvil.self_repair.")) { + int repairCombineAmount = MendermanRepairHelper.getRepairRequirementsCombineAmount(stack.get(), repairStack.get()); + ItemStack copied = stack.get().copy(); + copied.setDamageValue(stack.get().getDamageValue() - repairCombineAmount); + recipeSlots.get(2) + .createDisplayOverrides() + .add(copied); + } else if (anvilRecipe.getUid().getPath().startsWith("anvil.materials_repair.")) { OptionalInt repairRequirementsAmount = MendermanRepairHelper.getRepairRequirementsRepairAmount(stack.get(), repairStack.get()); if (repairRequirementsAmount.isPresent()) { ItemStack copied = repairStack.get().copy();