diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 51d3f3452a..4bf69d284c 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2008,23 +2008,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/item/instance/Item.java index e009082ed4..28b75eb008 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2019,23 +2019,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/item/instance/Item.java index e009082ed4..28b75eb008 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2019,23 +2019,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 85f98e9a20..2f7da999f4 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2019,23 +2019,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/item/instance/Item.java index d41c603aac..b72a573d71 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2085,23 +2085,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/item/instance/Item.java index d41c603aac..b72a573d71 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2085,23 +2085,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/item/instance/Item.java index d41c603aac..b72a573d71 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2085,23 +2085,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/item/instance/Item.java index d41c603aac..b72a573d71 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2085,23 +2085,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 5ba4f35781..3d2c2373d3 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2085,23 +2085,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 5ba4f35781..3d2c2373d3 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2085,23 +2085,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 1097c25b06..6dcc113e9f 100644 --- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2094,23 +2094,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_11.1_TheSourceOfFlame/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_11.1_TheSourceOfFlame/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 19246a70b5..598da8ddd7 100644 --- a/L2J_Mobius_11.1_TheSourceOfFlame/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_11.1_TheSourceOfFlame/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2097,23 +2097,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_11.2_AgeOfMagic/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_11.2_AgeOfMagic/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 19246a70b5..598da8ddd7 100644 --- a/L2J_Mobius_11.2_AgeOfMagic/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_11.2_AgeOfMagic/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2097,23 +2097,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 6fef8c4a10..d4ea6d8391 100644 --- a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -68,6 +68,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.options.EnchantOptions; import org.l2jmobius.gameserver.model.options.Options; import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.stats.functions.AbstractFunction; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.DropItem; @@ -1741,21 +1742,23 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - - if (player != null) + if (player == null) { - for (SkillHolder sh : _itemTemplate.getSkills()) + return; + } + + for (SkillHolder holder : _itemTemplate.getSkills()) + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) { - if (sh.getSkill().isPassive()) - { - player.addSkill(sh.getSkill(), false); - } + player.addSkill(skill, false); } } } @@ -1768,14 +1771,14 @@ public class Item extends WorldObject } final Player player = getActingPlayer(); - if (player != null) { - for (SkillHolder sh : _itemTemplate.getSkills()) + for (SkillHolder holder : _itemTemplate.getSkills()) { - if (sh.getSkill().isPassive()) + final Skill skill = holder.getSkill(); + if (skill.isPassive()) { - player.removeSkill(sh.getSkill(), false, true); + player.removeSkill(skill, false, true); } } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/item/instance/Item.java index a04de7f249..d11e0a04e5 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -69,6 +69,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.options.EnchantOptions; import org.l2jmobius.gameserver.model.options.Options; import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.stats.functions.AbstractFunction; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.DropItem; @@ -1996,21 +1997,23 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - - if (player != null) + if (player == null) { - for (SkillHolder sh : _itemTemplate.getSkills()) + return; + } + + for (SkillHolder holder : _itemTemplate.getSkills()) + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) { - if (sh.getSkill().isPassive()) - { - player.addSkill(sh.getSkill(), false); - } + player.addSkill(skill, false); } } } @@ -2023,14 +2026,14 @@ public class Item extends WorldObject } final Player player = getActingPlayer(); - if (player != null) { - for (SkillHolder sh : _itemTemplate.getSkills()) + for (SkillHolder holder : _itemTemplate.getSkills()) { - if (sh.getSkill().isPassive()) + final Skill skill = holder.getSkill(); + if (skill.isPassive()) { - player.removeSkill(sh.getSkill(), false, true); + player.removeSkill(skill, false, true); } } } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 12bac7cff5..fb47210cb9 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -69,6 +69,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.options.EnchantOptions; import org.l2jmobius.gameserver.model.options.Options; import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.stats.functions.AbstractFunction; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.DropItem; @@ -1996,21 +1997,23 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - - if (player != null) + if (player == null) { - for (SkillHolder sh : _itemTemplate.getSkills()) + return; + } + + for (SkillHolder holder : _itemTemplate.getSkills()) + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) { - if (sh.getSkill().isPassive()) - { - player.addSkill(sh.getSkill(), false); - } + player.addSkill(skill, false); } } } @@ -2023,14 +2026,14 @@ public class Item extends WorldObject } final Player player = getActingPlayer(); - if (player != null) { - for (SkillHolder sh : _itemTemplate.getSkills()) + for (SkillHolder holder : _itemTemplate.getSkills()) { - if (sh.getSkill().isPassive()) + final Skill skill = holder.getSkill(); + if (skill.isPassive()) { - player.removeSkill(sh.getSkill(), false, true); + player.removeSkill(skill, false, true); } } } diff --git a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 8651e91547..81be52ee1b 100644 --- a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2010,23 +2010,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 8651e91547..81be52ee1b 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2010,23 +2010,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 85f98e9a20..2f7da999f4 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2019,23 +2019,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 85f98e9a20..2f7da999f4 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2019,23 +2019,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 1c85928dca..a9b1ce3856 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2070,23 +2070,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 1c85928dca..a9b1ce3856 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2070,23 +2070,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 1c85928dca..a9b1ce3856 100644 --- a/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2070,23 +2070,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 1c85928dca..a9b1ce3856 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2070,23 +2070,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 1c85928dca..a9b1ce3856 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2070,23 +2070,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 738ac790b5..baa8681708 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2002,23 +2002,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/item/instance/Item.java index bc4fd4e03d..eeb012c86d 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2073,23 +2073,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/item/instance/Item.java index bc4fd4e03d..eeb012c86d 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2073,23 +2073,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 9b33ae6883..3e64e5255a 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2083,23 +2083,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Essence_7.1_Assassin/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Essence_7.1_Assassin/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 5f27ac6a66..100e3562d3 100644 --- a/L2J_Mobius_Essence_7.1_Assassin/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Essence_7.1_Assassin/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2086,23 +2086,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner() diff --git a/L2J_Mobius_Essence_7.2_AztacansTemple/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_Essence_7.2_AztacansTemple/java/org/l2jmobius/gameserver/model/item/instance/Item.java index e8d788fa98..558328e9e6 100644 --- a/L2J_Mobius_Essence_7.2_AztacansTemple/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_Essence_7.2_AztacansTemple/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -2086,23 +2086,34 @@ public class Item extends WorldObject public void giveSkillsToOwner() { - if (!hasPassiveSkills()) + if (!isEquipped() && !hasPassiveSkills()) { return; } final Player player = getActingPlayer(); - if (player != null) + if (player == null) { - _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> - { - final Skill skill = holder.getSkill(); - if (skill.isPassive()) - { - player.addSkill(skill, false); - } - }); + return; } + + _itemTemplate.forEachSkill(ItemSkillType.NORMAL, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive()) + { + player.addSkill(skill, false); + } + }); + + _itemTemplate.forEachSkill(ItemSkillType.ON_ENCHANT, holder -> + { + final Skill skill = holder.getSkill(); + if (skill.isPassive() && (getEnchantLevel() >= holder.getValue())) + { + player.addSkill(skill, false); + } + }); } public void removeSkillsFromOwner()