From 1c89c5f7795537f41b3d139d3e8b00354b10ccf8 Mon Sep 17 00:00:00 2001 From: WinDanesz <31292708+WinDanesz@users.noreply.github.com> Date: Wed, 7 Jul 2021 12:32:15 +0200 Subject: [PATCH] added onImbuementRemoval(ItemStack stack) to Imbuement interface --- .../java/electroblob/wizardry/enchantment/Imbuement.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/electroblob/wizardry/enchantment/Imbuement.java b/src/main/java/electroblob/wizardry/enchantment/Imbuement.java index 22b646ec..623869cc 100644 --- a/src/main/java/electroblob/wizardry/enchantment/Imbuement.java +++ b/src/main/java/electroblob/wizardry/enchantment/Imbuement.java @@ -33,7 +33,7 @@ import java.util.Iterator; * than having to deal with each of them separately, which would be inefficient and cumbersome (the former of those * classes cannot extend the latter because they both need to extend different subclasses of * {@link net.minecraft.enchantment.Enchantment}). - * + * * @since Wizardry 1.2 */ @Mod.EventBusSubscriber @@ -69,12 +69,16 @@ public interface Imbuement { Enchantment enchantment = Enchantment.getEnchantmentByID(enchantmentTag.getShort("id")); // If the item contains a magic weapon enchantment, remove it from the item if(enchantment instanceof Imbuement){ + ((Imbuement) enchantment).onImbuementRemoval(stack); enchantmentIt.remove(); } } } } + /** Allows executing some custom logic before this imbuement is being removed from the stack. Called when the imbuement is about to be removed. */ + default void onImbuementRemoval(ItemStack stack){} + @SubscribeEvent public static void onPlayerOpenContainerEvent(PlayerContainerEvent event){ // Brute-force fix to stop enchanted books in dungeon chests from having imbuements on them.