Addition of InventoryUpdate, ItemList and SkillList tasks.

This commit is contained in:
MobiusDevelopment
2022-06-22 22:27:59 +00:00
parent d3330617bd
commit 7934724757
77 changed files with 1954 additions and 912 deletions
@@ -435,6 +435,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3726,8 +3731,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3736,7 +3740,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9536,25 +9540,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13831,22 +13842,38 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList(boolean open)
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(this, open));
sendPacket(new ExQuestItemList(this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1426,19 +1426,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -437,6 +437,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3728,8 +3733,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3738,7 +3742,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9539,25 +9543,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13834,22 +13845,38 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList(boolean open)
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(this, open));
sendPacket(new ExQuestItemList(this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1432,19 +1432,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -439,6 +439,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3730,8 +3735,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3740,7 +3744,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9541,25 +9545,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13837,22 +13848,38 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList(boolean open)
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(this, open));
sendPacket(new ExQuestItemList(this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1432,19 +1432,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -443,6 +443,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3726,8 +3731,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3736,7 +3740,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9555,25 +9559,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13832,22 +13843,38 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList(boolean open)
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(this, open));
sendPacket(new ExQuestItemList(this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1432,19 +1432,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -441,6 +441,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3742,8 +3747,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3752,7 +3756,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9580,25 +9584,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13874,17 +13885,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -13892,6 +13916,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1534,19 +1534,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -442,6 +442,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3755,8 +3760,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3765,7 +3769,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9593,25 +9597,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13890,17 +13901,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -13908,6 +13932,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1616,19 +1616,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -442,6 +442,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3756,8 +3761,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3766,7 +3770,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9594,25 +9598,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13896,17 +13907,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -13914,6 +13938,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1616,19 +1616,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -454,6 +454,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3693,8 +3698,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3703,7 +3707,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9609,25 +9613,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13932,17 +13943,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -13950,6 +13974,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1610,19 +1610,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -451,6 +451,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3724,8 +3729,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3734,7 +3738,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9711,25 +9715,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -14048,17 +14059,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -14066,6 +14090,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1592,19 +1592,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -464,6 +464,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3741,8 +3746,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3751,7 +3755,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9737,25 +9741,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -14086,17 +14097,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -14104,6 +14128,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1592,19 +1592,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -465,6 +465,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3762,8 +3767,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3772,7 +3776,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9787,25 +9791,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -14148,17 +14159,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -14166,6 +14190,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1603,19 +1603,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -465,6 +465,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3790,8 +3795,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3800,7 +3804,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9815,25 +9819,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -14176,17 +14187,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -14194,6 +14218,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1603,19 +1603,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -439,6 +439,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3705,8 +3710,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3715,7 +3719,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9440,25 +9444,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13648,25 +13659,38 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
/**
* @param open
*/
public void sendItemList(boolean open)
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(this, open));
sendPacket(new ExQuestItemList(this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1434,19 +1434,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -439,6 +439,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3705,8 +3710,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3715,7 +3719,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9440,25 +9444,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13648,25 +13659,38 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
/**
* @param open
*/
public void sendItemList(boolean open)
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(this, open));
sendPacket(new ExQuestItemList(this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1434,19 +1434,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -437,6 +437,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3689,8 +3694,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3699,7 +3703,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9426,25 +9430,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13634,17 +13645,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -13652,6 +13676,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1536,19 +1536,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -446,6 +446,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3716,8 +3721,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3726,7 +3730,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9466,25 +9470,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13695,17 +13706,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -13713,6 +13737,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1618,19 +1618,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -446,6 +446,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3716,8 +3721,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3726,7 +3730,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9466,25 +9470,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13695,17 +13706,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -13713,6 +13737,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1618,19 +1618,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -460,6 +460,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3643,8 +3648,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3653,7 +3657,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9420,25 +9424,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13705,17 +13716,30 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -13723,6 +13747,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1612,19 +1612,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -434,6 +434,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3686,8 +3691,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3696,7 +3700,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9428,25 +9432,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13644,25 +13655,38 @@ public class Player extends Playable
return _questZoneId;
}
/**
* @param iu
*/
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
/**
* @param open
*/
public void sendItemList(boolean open)
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(this, open));
sendPacket(new ExQuestItemList(this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -1426,19 +1426,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -470,6 +470,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3724,8 +3729,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3734,7 +3738,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9585,25 +9589,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -13976,14 +13987,30 @@ public class Player extends Playable
return _questZoneId;
}
public void sendInventoryUpdate(IClientOutgoingPacket iu)
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -13991,6 +14018,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -73,6 +73,7 @@ import org.l2jmobius.gameserver.network.serverpackets.pet.ExPetInfo;
import org.l2jmobius.gameserver.network.serverpackets.pet.ExPetSkillList;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetDelete;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetInfo;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetInventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetItemList;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetStatusUpdate;
import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
@@ -1145,12 +1146,12 @@ public abstract class Summon extends Playable
return _summonPoints;
}
public void sendInventoryUpdate(IClientOutgoingPacket iu)
public void sendInventoryUpdate(PetInventoryUpdate iu)
{
final Player owner = _owner;
if (owner != null)
{
owner.sendInventoryUpdate(iu);
owner.sendPacket(iu);
if (getInventory() != null)
{
owner.sendPacket(new PetItemList(getInventory().getItems()));
@@ -870,7 +870,7 @@ public class Pet extends Summon
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(newItem);
sendInventoryUpdate(iu);
getOwner().sendInventoryUpdate(iu);
}
return newItem;
@@ -1531,7 +1531,7 @@ public class Pet extends Summon
controlItem.updateDatabase();
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(controlItem);
sendInventoryUpdate(iu);
getOwner().sendInventoryUpdate(iu);
}
}
else
@@ -1677,9 +1677,9 @@ public class Pet extends Summon
}
}
final PetInventoryUpdate petUI = new PetInventoryUpdate();
petUI.addItems(items);
sendInventoryUpdate(petUI);
final PetInventoryUpdate petIU = new PetInventoryUpdate();
petIU.addItems(items);
sendInventoryUpdate(petIU);
getStat().recalculateStats(true);
if (abortAttack)
{
@@ -1720,19 +1720,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -494,6 +494,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3766,8 +3771,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3776,7 +3780,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9652,25 +9656,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -14070,14 +14081,30 @@ public class Player extends Playable
return _questZoneId;
}
public void sendInventoryUpdate(IClientOutgoingPacket iu)
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -14085,6 +14112,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -73,6 +73,7 @@ import org.l2jmobius.gameserver.network.serverpackets.pet.ExPetInfo;
import org.l2jmobius.gameserver.network.serverpackets.pet.ExPetSkillList;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetDelete;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetInfo;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetInventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetItemList;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetStatusUpdate;
import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
@@ -1145,12 +1146,12 @@ public abstract class Summon extends Playable
return _summonPoints;
}
public void sendInventoryUpdate(IClientOutgoingPacket iu)
public void sendInventoryUpdate(PetInventoryUpdate iu)
{
final Player owner = _owner;
if (owner != null)
{
owner.sendInventoryUpdate(iu);
owner.sendPacket(iu);
if (getInventory() != null)
{
owner.sendPacket(new PetItemList(getInventory().getItems()));
@@ -870,7 +870,7 @@ public class Pet extends Summon
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(newItem);
sendInventoryUpdate(iu);
getOwner().sendInventoryUpdate(iu);
}
return newItem;
@@ -1531,7 +1531,7 @@ public class Pet extends Summon
controlItem.updateDatabase();
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(controlItem);
sendInventoryUpdate(iu);
getOwner().sendInventoryUpdate(iu);
}
}
else
@@ -1677,9 +1677,9 @@ public class Pet extends Summon
}
}
final PetInventoryUpdate petUI = new PetInventoryUpdate();
petUI.addItems(items);
sendInventoryUpdate(petUI);
final PetInventoryUpdate petIU = new PetInventoryUpdate();
petIU.addItems(items);
sendInventoryUpdate(petIU);
getStat().recalculateStats(true);
if (abortAttack)
{
@@ -1729,19 +1729,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -498,6 +498,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3781,8 +3786,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3791,7 +3795,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9832,25 +9836,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -14250,14 +14261,30 @@ public class Player extends Playable
return _questZoneId;
}
public void sendInventoryUpdate(IClientOutgoingPacket iu)
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -14265,6 +14292,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -73,6 +73,7 @@ import org.l2jmobius.gameserver.network.serverpackets.pet.ExPetInfo;
import org.l2jmobius.gameserver.network.serverpackets.pet.ExPetSkillList;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetDelete;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetInfo;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetInventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetItemList;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetStatusUpdate;
import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
@@ -1145,12 +1146,12 @@ public abstract class Summon extends Playable
return _summonPoints;
}
public void sendInventoryUpdate(IClientOutgoingPacket iu)
public void sendInventoryUpdate(PetInventoryUpdate iu)
{
final Player owner = _owner;
if (owner != null)
{
owner.sendInventoryUpdate(iu);
owner.sendPacket(iu);
if (getInventory() != null)
{
owner.sendPacket(new PetItemList(getInventory().getItems()));
@@ -870,7 +870,7 @@ public class Pet extends Summon
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(newItem);
sendInventoryUpdate(iu);
getOwner().sendInventoryUpdate(iu);
}
return newItem;
@@ -1531,7 +1531,7 @@ public class Pet extends Summon
controlItem.updateDatabase();
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(controlItem);
sendInventoryUpdate(iu);
getOwner().sendInventoryUpdate(iu);
}
}
else
@@ -1677,9 +1677,9 @@ public class Pet extends Summon
}
}
final PetInventoryUpdate petUI = new PetInventoryUpdate();
petUI.addItems(items);
sendInventoryUpdate(petUI);
final PetInventoryUpdate petIU = new PetInventoryUpdate();
petIU.addItems(items);
sendInventoryUpdate(petIU);
getStat().recalculateStats(true);
if (abortAttack)
{
@@ -1729,19 +1729,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}
@@ -498,6 +498,11 @@ public class Player extends Playable
private long _lastAccess;
private long _uptime;
private final Set<InventoryUpdate> _inventoryUpdates = ConcurrentHashMap.newKeySet(1);
private ScheduledFuture<?> _inventoryUpdateTask;
private ScheduledFuture<?> _itemListTask;
private ScheduledFuture<?> _skillListTask;
private boolean _subclassLock = false;
protected int _baseClass;
protected int _activeClass;
@@ -3814,8 +3819,7 @@ public class Player extends Playable
*/
public boolean exchangeItemsById(String process, WorldObject reference, int coinId, long cost, int rewardId, long count, boolean sendMessage)
{
final PlayerInventory inv = _inventory;
if (!inv.validateCapacityByItemId(rewardId, count))
if (!_inventory.validateCapacityByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -3824,7 +3828,7 @@ public class Player extends Playable
return false;
}
if (!inv.validateWeightByItemId(rewardId, count))
if (!_inventory.validateWeightByItemId(rewardId, count))
{
if (sendMessage)
{
@@ -9882,25 +9886,32 @@ public class Player extends Playable
}
public void sendSkillList(int lastLearnedSkillId)
{
if (_skillListTask == null)
{
_skillListTask = ThreadPool.schedule(() ->
{
boolean isDisabled = false;
final SkillList sl = new SkillList();
for (Skill s : getSkillList())
final SkillList skillList = new SkillList();
for (Skill skill : getSkillList())
{
if (_clan != null)
{
isDisabled = s.isClanSkill() && (_clan.getReputationScore() < 0);
isDisabled = skill.isClanSkill() && (_clan.getReputationScore() < 0);
}
sl.addSkill(s.getDisplayId(), s.getReuseDelayGroup(), s.getDisplayLevel(), s.getSubLevel(), s.isPassive(), isDisabled, s.isEnchantable());
skillList.addSkill(skill.getDisplayId(), skill.getReuseDelayGroup(), skill.getDisplayLevel(), skill.getSubLevel(), skill.isPassive(), isDisabled, skill.isEnchantable());
}
if (lastLearnedSkillId > 0)
{
sl.setLastLearnedSkillId(lastLearnedSkillId);
skillList.setLastLearnedSkillId(lastLearnedSkillId);
}
sendPacket(sl);
sendPacket(skillList);
sendPacket(new AcquireSkillList(this));
_skillListTask = null;
}, 300);
}
}
/**
@@ -14331,14 +14342,30 @@ public class Player extends Playable
return _questZoneId;
}
public void sendInventoryUpdate(IClientOutgoingPacket iu)
public void sendInventoryUpdate(InventoryUpdate iu)
{
sendPacket(iu);
_inventoryUpdates.add(iu);
if (_inventoryUpdateTask == null)
{
_inventoryUpdateTask = ThreadPool.schedule(() ->
{
for (InventoryUpdate packet : _inventoryUpdates)
{
sendPacket(packet);
_inventoryUpdates.remove(packet);
}
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_inventoryUpdateTask = null;
}, 300);
}
}
public void sendItemList()
{
if (_itemListTask == null)
{
_itemListTask = ThreadPool.schedule(() ->
{
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
@@ -14346,6 +14373,9 @@ public class Player extends Playable
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
_itemListTask = null;
}, 300);
}
}
public Fishing getFishing()
@@ -73,6 +73,7 @@ import org.l2jmobius.gameserver.network.serverpackets.pet.ExPetInfo;
import org.l2jmobius.gameserver.network.serverpackets.pet.ExPetSkillList;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetDelete;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetInfo;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetInventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetItemList;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetStatusUpdate;
import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
@@ -1145,12 +1146,12 @@ public abstract class Summon extends Playable
return _summonPoints;
}
public void sendInventoryUpdate(IClientOutgoingPacket iu)
public void sendInventoryUpdate(PetInventoryUpdate iu)
{
final Player owner = _owner;
if (owner != null)
{
owner.sendInventoryUpdate(iu);
owner.sendPacket(iu);
if (getInventory() != null)
{
owner.sendPacket(new PetItemList(getInventory().getItems()));
@@ -870,7 +870,7 @@ public class Pet extends Summon
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(newItem);
sendInventoryUpdate(iu);
getOwner().sendInventoryUpdate(iu);
}
return newItem;
@@ -1531,7 +1531,7 @@ public class Pet extends Summon
controlItem.updateDatabase();
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(controlItem);
sendInventoryUpdate(iu);
getOwner().sendInventoryUpdate(iu);
}
}
else
@@ -1677,9 +1677,9 @@ public class Pet extends Summon
}
}
final PetInventoryUpdate petUI = new PetInventoryUpdate();
petUI.addItems(items);
sendInventoryUpdate(petUI);
final PetInventoryUpdate petIU = new PetInventoryUpdate();
petIU.addItems(items);
sendInventoryUpdate(petIU);
getStat().recalculateStats(true);
if (abortAttack)
{
@@ -1729,19 +1729,26 @@ public abstract class Inventory extends ItemContainer
*/
private void checkEquipTask()
{
if ((_skillItemTask == null) && (getOwner() != null) && getOwner().isPlayer() && getOwner().getActingPlayer().hasEnteredWorld())
if (_skillItemTask == null)
{
final Creature owner = getOwner();
if ((owner != null) && owner.isPlayer())
{
final Player player = owner.getActingPlayer();
if (player.hasEnteredWorld())
{
getOwner().getActingPlayer().setUsingSkillItem(true);
_skillItemTask = ThreadPool.schedule(() ->
{
getOwner().getActingPlayer().setUsingSkillItem(false);
getOwner().getStat().recalculateStats(true);
getOwner().updateAbnormalVisualEffects();
getOwner().getActingPlayer().sendSkillList();
player.setUsingSkillItem(false);
player.getStat().recalculateStats(true);
player.updateAbnormalVisualEffects();
player.sendSkillList();
_skillItemTask = null;
}, 50);
}
}
}
}
/**
* @return the mask of wore item
@@ -49,4 +49,15 @@ public class InventoryUpdate extends AbstractInventoryUpdate
writeItems(packet);
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof InventoryUpdate)
{
final InventoryUpdate iu = (InventoryUpdate) obj;
return getItems().equals(iu.getItems());
}
return false;
}
}