diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index f9c87f7233..78bac08bd5 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -40,6 +40,7 @@ import org.l2jmobius.gameserver.cache.PaperdollCache; import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1331,7 +1332,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1372,7 +1373,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1435,7 +1436,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index a9ae69da95..88cd0ebdf3 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -40,6 +40,7 @@ import org.l2jmobius.gameserver.cache.PaperdollCache; import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1337,7 +1338,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1378,7 +1379,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1441,7 +1442,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index a9ae69da95..88cd0ebdf3 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -40,6 +40,7 @@ import org.l2jmobius.gameserver.cache.PaperdollCache; import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1337,7 +1338,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1378,7 +1379,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1441,7 +1442,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 774a796220..ed552364d9 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -40,6 +40,7 @@ import org.l2jmobius.gameserver.cache.PaperdollCache; import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1337,7 +1338,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1378,7 +1379,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1441,7 +1442,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 6c36a7e422..a8ec81d6af 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1380,7 +1381,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1445,7 +1446,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1543,7 +1544,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 00984dec3a..998fcb6f21 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1462,7 +1463,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1527,7 +1528,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1625,7 +1626,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 00984dec3a..998fcb6f21 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1462,7 +1463,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1527,7 +1528,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1625,7 +1626,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 9c05019fc7..2710aaf2b6 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1456,7 +1457,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1521,7 +1522,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1619,7 +1620,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 890e186a52..2312258df6 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1438,7 +1439,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1503,7 +1504,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1601,7 +1602,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 890e186a52..2312258df6 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1438,7 +1439,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1503,7 +1504,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1601,7 +1602,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 0bb77047f7..965207424a 100644 --- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1449,7 +1450,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1514,7 +1515,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1612,7 +1613,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index e9fe2f3986..cb5f70a595 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -40,6 +40,7 @@ import org.l2jmobius.gameserver.cache.PaperdollCache; import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1339,7 +1340,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1380,7 +1381,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1443,7 +1444,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index e9fe2f3986..cb5f70a595 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -40,6 +40,7 @@ import org.l2jmobius.gameserver.cache.PaperdollCache; import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1339,7 +1340,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1380,7 +1381,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1443,7 +1444,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 0207f5f316..426820e765 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1382,7 +1383,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1447,7 +1448,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1545,7 +1546,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 4391f57275..584c900aef 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1464,7 +1465,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1529,7 +1530,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1627,7 +1628,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 4391f57275..584c900aef 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1464,7 +1465,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1529,7 +1530,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1627,7 +1628,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 92d67906e6..28f1d07c13 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1458,7 +1459,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1523,7 +1524,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1621,7 +1622,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 65096d11fb..c3962abe78 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -40,6 +40,7 @@ import org.l2jmobius.gameserver.cache.PaperdollCache; import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1331,7 +1332,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1372,7 +1373,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1435,7 +1436,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/GameClient.java index ae9b8070b3..df53b329e5 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index 9a8114fe08..87e8da66c4 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1566,7 +1567,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1631,7 +1632,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1729,7 +1730,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index ca2e133617..9ccf975242 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1575,7 +1576,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1640,7 +1641,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1738,7 +1739,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return; diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java index 5055066a15..4dfc5f6019 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/data/xml/EnchantItemOptionsData.java @@ -92,6 +92,15 @@ public class EnchantItemOptionsData implements IXmlReader LOGGER.info(getClass().getSimpleName() + ": Loaded " + _data.size() + " items and " + counter + " options."); } + /** + * @param itemId + * @return if specified item id has available enchant effects. + */ + public boolean hasOptions(int itemId) + { + return _data.containsKey(itemId); + } + /** * @param itemId * @param enchantLevel diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java index ca2e133617..9ccf975242 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/itemcontainer/Inventory.java @@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.xml.AgathionData; import org.l2jmobius.gameserver.data.xml.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.ArmorSetData; +import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData; import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.PlayerCondOverride; @@ -1575,7 +1576,7 @@ public abstract class Inventory extends ItemContainer if (old != null) { // Prevent flood from using items with skills. - if (old.getTemplate().hasSkills()) + if (old.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(old.getId())) { checkEquipTask(); } @@ -1640,7 +1641,7 @@ public abstract class Inventory extends ItemContainer if (item != null) { // Prevent flood from using items with skills. - if (item.getTemplate().hasSkills()) + if (item.getTemplate().hasSkills() || EnchantItemOptionsData.getInstance().hasOptions(item.getId())) { checkEquipTask(); } @@ -1738,7 +1739,7 @@ public abstract class Inventory extends ItemContainer getOwner().updateAbnormalVisualEffects(); getOwner().getActingPlayer().sendSkillList(); _skillItemTask = null; - }, 100); + }, 50); } } diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/GameClient.java index ef0a42d21d..b2c99ae828 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/GameClient.java @@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler if (_player != null) { - // Avoid flood from class change or using items with skills. + // Prevent flood from class change or using items with skills. if ((_player.isChangingClass() || _player.isUsingSkillItem()) && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget))) { return;