Prevent flood from using items with enchant options.
This commit is contained in:
parent
90e0adc645
commit
c4fba603b2
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ public class GameClient extends ChannelInboundHandler<GameClient>
|
||||
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user