diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TalismanListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TalismanListener.java index 5e15eb362..ebd16f077 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TalismanListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TalismanListener.java @@ -223,10 +223,17 @@ public class TalismanListener implements Listener { public void onItemBreak(PlayerItemBreakEvent e) { if (Talisman.trigger(e, SlimefunItems.TALISMAN_ANVIL)) { PlayerInventory inv = e.getPlayer().getInventory(); - int slot = inv.getHeldItemSlot(); + + ItemStack brokenItem = e.getBrokenItem(); + + int slot = -1; // Did the tool in our hand break or was it an armor piece? - if (!e.getBrokenItem().equals(inv.getItemInMainHand())) { + if (brokenItem.equals(inv.getItemInMainHand())) { + slot = inv.getHeldItemSlot(); + } else if (brokenItem.equals(inv.getItemInOffHand())) { + slot = 40; + } else { for (int s : armorSlots) { if (e.getBrokenItem().equals(inv.getItem(s))) { slot = s; @@ -235,6 +242,11 @@ public class TalismanListener implements Listener { } } + // No item found, just return. + if (slot < 0) { + return; + } + ItemStack item = e.getBrokenItem().clone(); ItemMeta meta = item.getItemMeta();