diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 5196174020..8fbf591e16 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -616,8 +616,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 6792706c97..4f92bd3830 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -616,8 +616,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 6792706c97..4f92bd3830 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -616,8 +616,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 6792706c97..4f92bd3830 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -616,8 +616,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 0236dae45b..9b374c1256 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -616,8 +616,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 0236dae45b..9b374c1256 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -616,8 +616,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 0236dae45b..9b374c1256 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -616,8 +616,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 0236dae45b..9b374c1256 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -616,8 +616,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 3581c1058c..180940f4a9 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -617,8 +617,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 3581c1058c..180940f4a9 100644 --- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -617,8 +617,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 3581c1058c..180940f4a9 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -617,8 +617,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 437fc74789..6a70723118 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -608,8 +608,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 437fc74789..6a70723118 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -608,8 +608,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index c416f0ab58..04a50851c5 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -664,8 +664,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index c416f0ab58..04a50851c5 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -664,8 +664,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 0e978d19bf..c3fbddcdad 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -664,8 +664,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 0e978d19bf..c3fbddcdad 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -664,8 +664,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 0e978d19bf..c3fbddcdad 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -664,8 +664,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 0e978d19bf..c3fbddcdad 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -664,8 +664,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index 5196174020..8fbf591e16 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -616,8 +616,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index d8ec3a00bc..b6c330b0eb 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -624,8 +624,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index d8ec3a00bc..b6c330b0eb 100644 --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -624,8 +624,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /** diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java index d8ec3a00bc..b6c330b0eb 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/itemcontainer/PlayerInventory.java @@ -624,8 +624,17 @@ public class PlayerInventory extends Inventory @Override public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) { - final ItemInstance item = getItemByItemId(itemId); - return item == null ? null : destroyItem(process, item, count, actor, reference); + // Attempt to find non equipped items. + ItemInstance destroyItem = null; + for (ItemInstance item : getAllItemsByItemId(itemId)) + { + destroyItem = item; + if (!destroyItem.isEquipped()) + { + break; + } + } + return destroyItem == null ? null : destroyItem(process, destroyItem, count, actor, reference); } /**