Inventory related cleanup and improvements.

This commit is contained in:
MobiusDevelopment 2019-12-15 00:25:19 +00:00
parent 11411164f7
commit a1f198218a
98 changed files with 558 additions and 863 deletions

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -462,7 +462,7 @@ public class PrimevalIsle extends AbstractNpcAI
if ((npc.getId() == SAILREN) || (getRandom(100) < 3)) if ((npc.getId() == SAILREN) || (getRandom(100) < 3))
{ {
final PlayerInstance player = npc.getId() == SAILREN ? getRandomPartyMember(killer) : killer; final PlayerInstance player = npc.getId() == SAILREN ? getRandomPartyMember(killer) : killer;
if (player.getInventory().getSize(false) <= (player.getInventoryLimit() * 0.8)) if (player.isInventoryUnder80(false))
{ {
giveItems(player, DEINONYCHUS, 1); giveItems(player, DEINONYCHUS, 1);
final ItemInstance summonItem = player.getInventory().getItemByItemId(DEINONYCHUS); final ItemInstance summonItem = player.getInventory().getItemByItemId(DEINONYCHUS);

View File

@ -292,9 +292,8 @@ public class Q00350_EnhanceYourWeapon extends Quest
return null; return null;
} }
final ItemInstance[] inv = player.getInventory().getItems();
SoulCrystal ret = null; SoulCrystal ret = null;
for (ItemInstance item : inv) for (ItemInstance item : player.getInventory().getItems())
{ {
final int itemId = item.getId(); final int itemId = item.getId();
if (!SOUL_CRYSTALS.containsKey(itemId)) if (!SOUL_CRYSTALS.containsKey(itemId))

View File

@ -937,6 +937,7 @@
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="material" val="GOLD" /> <set name="material" val="GOLD" />
<set name="price" val="1" /> <set name="price" val="1" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
</item> </item>
<item id="58" type="Armor" name="Mithril Breastplate"> <item id="58" type="Armor" name="Mithril Breastplate">

View File

@ -14042,13 +14042,23 @@ public class PlayerInstance extends Playable
} }
/** /**
* Test if player inventory is under 90% capaity * Test if player inventory is under 90% capacity
* @param includeQuestInv check also quest inventory * @param includeQuestInv check also quest inventory
* @return * @return
*/ */
public boolean isInventoryUnder90(boolean includeQuestInv) public boolean isInventoryUnder90(boolean includeQuestInv)
{ {
return _inventory.getSize(includeQuestInv) <= (getInventoryLimit() * 0.9); return (_inventory.getSize(item -> !item.isQuestItem() || includeQuestInv) <= (getInventoryLimit() * 0.9));
}
/**
* Test if player inventory is under 80% capacity
* @param includeQuestInv check also quest inventory
* @return
*/
public boolean isInventoryUnder80(boolean includeQuestInv)
{
return (_inventory.getSize(item -> !item.isQuestItem() || includeQuestInv) <= (getInventoryLimit() * 0.8));
} }
public boolean havePetInvItems() public boolean havePetInvItems()

View File

@ -40,6 +40,10 @@ public class ConditionPlayerInvSize extends Condition
@Override @Override
public boolean testImpl(Creature effector, Creature effected, Skill skill, Item item) public boolean testImpl(Creature effector, Creature effected, Skill skill, Item item)
{ {
return (effector.getActingPlayer() == null) || (effector.getActingPlayer().getInventory().getSize(false) <= (effector.getActingPlayer().getInventoryLimit() - _size)); if (effector.getActingPlayer() != null)
{
return effector.getActingPlayer().getInventory().getSize(i -> !i.isQuestItem()) <= (effector.getActingPlayer().getInventoryLimit() - _size);
}
return true;
} }
} }

View File

@ -41,11 +41,11 @@ public class ConditionTargetInvSize extends Condition
@Override @Override
public boolean testImpl(Creature effector, Creature effected, Skill skill, Item item) public boolean testImpl(Creature effector, Creature effected, Skill skill, Item item)
{ {
if ((effected == null) || !effected.isPlayer()) if ((effected != null) && effected.isPlayer())
{ {
return false; final PlayerInstance target = effected.getActingPlayer();
return target.getInventory().getSize(i -> !i.isQuestItem()) <= (target.getInventoryLimit() - _size);
} }
final PlayerInstance target = effected.getActingPlayer(); return false;
return target.getInventory().getSize(false) <= (target.getInventoryLimit() - _size);
} }
} }

View File

@ -21,6 +21,8 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -107,7 +109,7 @@ public abstract class Inventory extends ItemContainer
private static final class ChangeRecorder implements PaperdollListener private static final class ChangeRecorder implements PaperdollListener
{ {
private final Inventory _inventory; private final Inventory _inventory;
private final List<ItemInstance> _changed; private final Set<ItemInstance> _changed = ConcurrentHashMap.newKeySet();
/** /**
* Constructor of the ChangeRecorder * Constructor of the ChangeRecorder
@ -116,7 +118,6 @@ public abstract class Inventory extends ItemContainer
ChangeRecorder(Inventory inventory) ChangeRecorder(Inventory inventory)
{ {
_inventory = inventory; _inventory = inventory;
_changed = new ArrayList<>();
_inventory.addPaperdollListener(this); _inventory.addPaperdollListener(this);
} }
@ -129,10 +130,7 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyEquiped(int slot, ItemInstance item, Inventory inventory) public void notifyEquiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (!_changed.contains(item)) _changed.add(item);
{
_changed.add(item);
}
} }
/** /**
@ -144,10 +142,7 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (!_changed.contains(item)) _changed.add(item);
{
_changed.add(item);
}
} }
/** /**
@ -180,7 +175,6 @@ public abstract class Inventory extends ItemContainer
if (item.getItemType() == WeaponType.BOW) if (item.getItemType() == WeaponType.BOW)
{ {
final ItemInstance arrow = inventory.getPaperdollItem(PAPERDOLL_LHAND); final ItemInstance arrow = inventory.getPaperdollItem(PAPERDOLL_LHAND);
if (arrow != null) if (arrow != null)
{ {
inventory.setPaperdollItem(PAPERDOLL_LHAND, null); inventory.setPaperdollItem(PAPERDOLL_LHAND, null);
@ -189,7 +183,6 @@ public abstract class Inventory extends ItemContainer
else if (item.getItemType() == WeaponType.CROSSBOW) else if (item.getItemType() == WeaponType.CROSSBOW)
{ {
final ItemInstance bolts = inventory.getPaperdollItem(PAPERDOLL_LHAND); final ItemInstance bolts = inventory.getPaperdollItem(PAPERDOLL_LHAND);
if (bolts != null) if (bolts != null)
{ {
inventory.setPaperdollItem(PAPERDOLL_LHAND, null); inventory.setPaperdollItem(PAPERDOLL_LHAND, null);
@ -198,7 +191,6 @@ public abstract class Inventory extends ItemContainer
else if (item.getItemType() == WeaponType.FISHINGROD) else if (item.getItemType() == WeaponType.FISHINGROD)
{ {
final ItemInstance lure = inventory.getPaperdollItem(PAPERDOLL_LHAND); final ItemInstance lure = inventory.getPaperdollItem(PAPERDOLL_LHAND);
if (lure != null) if (lure != null)
{ {
inventory.setPaperdollItem(PAPERDOLL_LHAND, null); inventory.setPaperdollItem(PAPERDOLL_LHAND, null);
@ -217,7 +209,6 @@ public abstract class Inventory extends ItemContainer
if (item.getItemType() == WeaponType.BOW) if (item.getItemType() == WeaponType.BOW)
{ {
final ItemInstance arrow = inventory.findArrowForBow(item.getItem()); final ItemInstance arrow = inventory.findArrowForBow(item.getItem());
if (arrow != null) if (arrow != null)
{ {
inventory.setPaperdollItem(PAPERDOLL_LHAND, arrow); inventory.setPaperdollItem(PAPERDOLL_LHAND, arrow);
@ -226,7 +217,6 @@ public abstract class Inventory extends ItemContainer
else if (item.getItemType() == WeaponType.CROSSBOW) else if (item.getItemType() == WeaponType.CROSSBOW)
{ {
final ItemInstance bolts = inventory.findBoltForCrossBow(item.getItem()); final ItemInstance bolts = inventory.findBoltForCrossBow(item.getItem());
if (bolts != null) if (bolts != null)
{ {
inventory.setPaperdollItem(PAPERDOLL_LHAND, bolts); inventory.setPaperdollItem(PAPERDOLL_LHAND, bolts);
@ -273,8 +263,8 @@ public abstract class Inventory extends ItemContainer
{ {
return; return;
} }
final PlayerInstance player = (PlayerInstance) inventory.getOwner();
final PlayerInstance player = (PlayerInstance) inventory.getOwner();
Skill enchant4Skill; Skill enchant4Skill;
Skill itemSkill; Skill itemSkill;
final Item it = item.getItem(); final Item it = item.getItem();

View File

@ -19,9 +19,11 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.Collection;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.function.Predicate;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -45,8 +47,6 @@ public abstract class ItemContainer
protected final List<ItemInstance> _items = new CopyOnWriteArrayList<>(); protected final List<ItemInstance> _items = new CopyOnWriteArrayList<>();
int _ownerId = 0;
protected ItemContainer() protected ItemContainer()
{ {
} }
@ -65,12 +65,7 @@ public abstract class ItemContainer
*/ */
public int getOwnerId() public int getOwnerId()
{ {
return getOwner() == null ? _ownerId : getOwner().getObjectId(); return getOwner() == null ? 0 : getOwner().getObjectId();
}
public void setOwnerId(int id)
{
_ownerId = id;
} }
/** /**
@ -82,11 +77,27 @@ public abstract class ItemContainer
} }
/** /**
* @return the items in inventory * @param filter
* @param filters
* @return the quantity of items in the inventory
*/ */
public ItemInstance[] getItems() @SafeVarargs
public final int getSize(Predicate<ItemInstance> filter, Predicate<ItemInstance>... filters)
{ {
return _items.toArray(new ItemInstance[_items.size()]); for (Predicate<ItemInstance> additionalFilter : filters)
{
filter = filter.and(additionalFilter);
}
return (int) _items.stream().filter(filter).count();
}
/**
* Gets the items in inventory.
* @return the items in inventory.
*/
public Collection<ItemInstance> getItems()
{
return _items;
} }
/** /**

View File

@ -19,7 +19,8 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.LinkedList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -54,9 +55,6 @@ public class PlayerInventory extends Inventory
private int[] _blockItems = null; private int[] _blockItems = null;
private int _questSlots;
private final Object _lock;
/** /**
* Block modes: * Block modes:
* <UL> * <UL>
@ -70,7 +68,6 @@ public class PlayerInventory extends Inventory
public PlayerInventory(PlayerInstance owner) public PlayerInventory(PlayerInstance owner)
{ {
_owner = owner; _owner = owner;
_lock = new Object();
} }
@Override @Override
@ -118,14 +115,14 @@ public class PlayerInventory extends Inventory
* @param allowAncientAdena * @param allowAncientAdena
* @return ItemInstance : items in inventory * @return ItemInstance : items in inventory
*/ */
public ItemInstance[] getUniqueItems(boolean allowAdena, boolean allowAncientAdena) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena)
{ {
return getUniqueItems(allowAdena, allowAncientAdena, true); return getUniqueItems(allowAdena, allowAncientAdena, true);
} }
public ItemInstance[] getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item == null) || (!allowAdena && (item.getId() == ADENA_ID)) || (!allowAncientAdena && (item.getId() == ANCIENT_ADENA_ID))) if ((item == null) || (!allowAdena && (item.getId() == ADENA_ID)) || (!allowAncientAdena && (item.getId() == ANCIENT_ADENA_ID)))
@ -146,7 +143,7 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
@ -155,14 +152,14 @@ public class PlayerInventory extends Inventory
* @param allowAncientAdena * @param allowAncientAdena
* @return ItemInstance : items in inventory * @return ItemInstance : items in inventory
*/ */
public ItemInstance[] getUniqueItemsByEnchantLevel(boolean allowAdena, boolean allowAncientAdena) public Collection<ItemInstance> getUniqueItemsByEnchantLevel(boolean allowAdena, boolean allowAncientAdena)
{ {
return getUniqueItemsByEnchantLevel(allowAdena, allowAncientAdena, true); return getUniqueItemsByEnchantLevel(allowAdena, allowAncientAdena, true);
} }
public ItemInstance[] getUniqueItemsByEnchantLevel(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItemsByEnchantLevel(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item == null) || (!allowAdena && (item.getId() == ADENA_ID)) || (!allowAncientAdena && (item.getId() == ANCIENT_ADENA_ID))) if ((item == null) || (!allowAdena && (item.getId() == ADENA_ID)) || (!allowAncientAdena && (item.getId() == ANCIENT_ADENA_ID)))
@ -185,14 +182,14 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
* @param itemId * @param itemId
* @return * @return
*/ */
public ItemInstance[] getAllItemsByItemId(int itemId) public Collection<ItemInstance> getAllItemsByItemId(int itemId)
{ {
return getAllItemsByItemId(itemId, true); return getAllItemsByItemId(itemId, true);
} }
@ -201,11 +198,11 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return List<ItemInstance> : matching items from inventory
*/ */
public ItemInstance[] getAllItemsByItemId(int itemId, boolean includeEquipped) public List<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if (item == null) if (item == null)
@ -218,7 +215,7 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
@ -226,7 +223,7 @@ public class PlayerInventory extends Inventory
* @param enchantment * @param enchantment
* @return * @return
*/ */
public ItemInstance[] getAllItemsByItemId(int itemId, int enchantment) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment)
{ {
return getAllItemsByItemId(itemId, enchantment, true); return getAllItemsByItemId(itemId, enchantment, true);
} }
@ -236,11 +233,11 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return List<ItemInstance> : matching items from inventory
*/ */
public ItemInstance[] getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public List<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if (item == null) if (item == null)
@ -253,7 +250,7 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
@ -262,9 +259,9 @@ public class PlayerInventory extends Inventory
* @param feightable * @param feightable
* @return the list of items in inventory available for transaction * @return the list of items in inventory available for transaction
*/ */
public ItemInstance[] getAvailableItems(boolean allowAdena, boolean allowNonTradeable, boolean feightable) public Collection<ItemInstance> getAvailableItems(boolean allowAdena, boolean allowNonTradeable, boolean feightable)
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item == null) || !item.isAvailable(_owner, allowAdena, allowNonTradeable) || !canManipulateWithItemId(item.getId())) if ((item == null) || !item.isAvailable(_owner, allowAdena, allowNonTradeable) || !canManipulateWithItemId(item.getId()))
@ -283,16 +280,16 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
* Get all augmented items * Get all augmented items
* @return * @return
*/ */
public ItemInstance[] getAugmentedItems() public Collection<ItemInstance> getAugmentedItems()
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item != null) && item.isAugmented()) if ((item != null) && item.isAugmented())
@ -300,16 +297,16 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
* Get all element items * Get all element items
* @return * @return
*/ */
public ItemInstance[] getElementItems() public Collection<ItemInstance> getElementItems()
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item != null) && (item.getElementals() != null)) if ((item != null) && (item.getElementals() != null))
@ -317,7 +314,7 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
@ -325,9 +322,9 @@ public class PlayerInventory extends Inventory
* @param tradeList * @param tradeList
* @return ItemInstance : items in inventory * @return ItemInstance : items in inventory
*/ */
public TradeItem[] getAvailableItems(TradeList tradeList) public Collection<TradeItem> getAvailableItems(TradeList tradeList)
{ {
final List<TradeItem> list = new LinkedList<>(); final List<TradeItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item != null) && item.isAvailable(_owner, false, false)) if ((item != null) && item.isAvailable(_owner, false, false))
@ -339,7 +336,7 @@ public class PlayerInventory extends Inventory
} }
} }
} }
return list.toArray(new TradeItem[list.size()]); return list;
} }
/** /**
@ -714,18 +711,6 @@ public class PlayerInventory extends Inventory
_ancientAdena = null; _ancientAdena = null;
} }
if (item.isQuestItem())
{
synchronized (_lock)
{
_questSlots--;
if (_questSlots < 0)
{
_questSlots = 0;
LOGGER.warning(this + ": QuestInventory size < 0!");
}
}
}
return super.removeItem(item); return super.removeItem(item);
} }
@ -852,7 +837,7 @@ public class PlayerInventory extends Inventory
public boolean validateCapacity(long slots, boolean questItem) public boolean validateCapacity(long slots, boolean questItem)
{ {
return ((slots == 0) && !Config.AUTO_LOOT_SLOT_LIMIT) || questItem ? (_questSlots + slots) <= _owner.getQuestInventoryLimit() : ((_items.size() - _questSlots) + slots) <= _owner.getInventoryLimit(); return ((slots == 0) && !Config.AUTO_LOOT_SLOT_LIMIT) || questItem ? (getSize(item -> item.isQuestItem()) + slots) <= _owner.getQuestInventoryLimit() : (getSize(item -> !item.isQuestItem()) + slots) <= _owner.getInventoryLimit();
} }
@Override @Override
@ -936,24 +921,6 @@ public class PlayerInventory extends Inventory
return ((_blockMode != 0) || !CommonUtil.contains(_blockItems, itemId)) && ((_blockMode != 1) || CommonUtil.contains(_blockItems, itemId)); return ((_blockMode != 0) || !CommonUtil.contains(_blockItems, itemId)) && ((_blockMode != 1) || CommonUtil.contains(_blockItems, itemId));
} }
@Override
protected void addItem(ItemInstance item)
{
if (item.isQuestItem())
{
synchronized (_lock)
{
_questSlots++;
}
}
super.addItem(item);
}
public int getSize(boolean quest)
{
return quest ? _questSlots : getSize() - _questSlots;
}
@Override @Override
public String toString() public String toString()
{ {

View File

@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.model.multisell; package org.l2jmobius.gameserver.model.multisell;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList; import java.util.LinkedList;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
@ -50,7 +51,7 @@ public class PreparedListContainer extends ListContainer
return; return;
} }
final ItemInstance[] items; final Collection<ItemInstance> items;
if (getMaintainEnchantment()) if (getMaintainEnchantment())
{ {
items = player.getInventory().getUniqueItemsByEnchantLevel(false, false, false); items = player.getInventory().getUniqueItemsByEnchantLevel(false, false, false);

View File

@ -300,18 +300,18 @@ public class MultiSellChoose implements IClientIncomingPacket
if (list.getMaintainEnchantment() || (e.getEnchantLevel() > 0)) if (list.getMaintainEnchantment() || (e.getEnchantLevel() > 0))
{ {
// loop through this list and remove (one by one) each item until the required amount is taken. // loop through this list and remove (one by one) each item until the required amount is taken.
final ItemInstance[] inventoryContents = inv.getAllItemsByItemId(e.getItemId(), e.getEnchantLevel(), false); final List<ItemInstance> inventoryContents = inv.getAllItemsByItemId(e.getItemId(), e.getEnchantLevel(), false);
for (int i = 0; i < (e.getItemCount() * _amount); i++) for (int i = 0; i < (e.getItemCount() * _amount); i++)
{ {
if (inventoryContents[i].isAugmented()) if (inventoryContents.get(i).isAugmented())
{ {
augmentation.add(inventoryContents[i].getAugmentation()); augmentation.add(inventoryContents.get(i).getAugmentation());
} }
if (inventoryContents[i].getElementals() != null) if (inventoryContents.get(i).getElementals() != null)
{ {
elemental = inventoryContents[i].getElementals(); elemental = inventoryContents.get(i).getElementals();
} }
if (!player.destroyItem("Multisell", inventoryContents[i].getObjectId(), 1, player.getTarget(), true)) if (!player.destroyItem("Multisell", inventoryContents.get(i).getObjectId(), 1, player.getTarget(), true))
{ {
player.setMultiSell(null); player.setMultiSell(null);
return; return;
@ -358,9 +358,9 @@ public class MultiSellChoose implements IClientIncomingPacket
// choice 1. Small number of items exchanged. No sorting. // choice 1. Small number of items exchanged. No sorting.
for (int i = 1; i <= (e.getItemCount() * _amount); i++) for (int i = 1; i <= (e.getItemCount() * _amount); i++)
{ {
final ItemInstance[] inventoryContents = inv.getAllItemsByItemId(e.getItemId(), false); final List<ItemInstance> inventoryContents = inv.getAllItemsByItemId(e.getItemId(), false);
itemToTake = inventoryContents[0]; itemToTake = inventoryContents.get(0);
// get item with the LOWEST enchantment level from the inventory... // get item with the LOWEST enchantment level from the inventory...
// +0 is lowest by default... // +0 is lowest by default...
if (itemToTake.getEnchantLevel() > 0) if (itemToTake.getEnchantLevel() > 0)

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.clientpackets; package org.l2jmobius.gameserver.network.clientpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.GameClient;
@ -39,7 +41,7 @@ public class RequestPackageSendableItemList implements IClientIncomingPacket
@Override @Override
public void run(GameClient client) public void run(GameClient client)
{ {
final ItemInstance[] items = client.getPlayer().getInventory().getAvailableItems(true, true, true); final Collection<ItemInstance> items = client.getPlayer().getInventory().getAvailableItems(true, true, true);
client.sendPacket(new PackageSendableList(items, _objectID, client.getPlayer().getAdena())); client.sendPacket(new PackageSendableList(items, _objectID, client.getPlayer().getAdena()));
} }
} }

View File

@ -79,13 +79,7 @@ public class RequestRefundItem implements IClientIncomingPacket
return; return;
} }
if (_items == null) if ((_items == null) || !player.hasRefund())
{
client.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (!player.hasRefund())
{ {
client.sendPacket(ActionFailed.STATIC_PACKET); client.sendPacket(ActionFailed.STATIC_PACKET);
return; return;
@ -126,7 +120,7 @@ public class RequestRefundItem implements IClientIncomingPacket
long adena = 0; long adena = 0;
long slots = 0; long slots = 0;
final ItemInstance[] refund = player.getRefund().getItems(); final ItemInstance[] refund = player.getRefund().getItems().toArray(new ItemInstance[0]);
final int[] objectIds = new int[_items.length]; final int[] objectIds = new int[_items.length];
for (int i = 0; i < _items.length; i++) for (int i = 0; i < _items.length; i++)
@ -177,21 +171,21 @@ public class RequestRefundItem implements IClientIncomingPacket
if ((weight > Integer.MAX_VALUE) || (weight < 0) || !player.getInventory().validateWeight((int) weight)) if ((weight > Integer.MAX_VALUE) || (weight < 0) || !player.getInventory().validateWeight((int) weight))
{ {
player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT); client.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
client.sendPacket(ActionFailed.STATIC_PACKET); client.sendPacket(ActionFailed.STATIC_PACKET);
return; return;
} }
if ((slots > Integer.MAX_VALUE) || (slots < 0) || !player.getInventory().validateCapacity((int) slots)) if ((slots > Integer.MAX_VALUE) || (slots < 0) || !player.getInventory().validateCapacity((int) slots))
{ {
player.sendPacket(SystemMessageId.YOUR_INVENTORY_IS_FULL); client.sendPacket(SystemMessageId.YOUR_INVENTORY_IS_FULL);
client.sendPacket(ActionFailed.STATIC_PACKET); client.sendPacket(ActionFailed.STATIC_PACKET);
return; return;
} }
if ((adena < 0) || !player.reduceAdena("Refund", adena, player.getLastFolkNPC(), false)) if ((adena < 0) || !player.reduceAdena("Refund", adena, player.getLastFolkNPC(), false))
{ {
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA); client.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
client.sendPacket(ActionFailed.STATIC_PACKET); client.sendPacket(ActionFailed.STATIC_PACKET);
return; return;
} }
@ -209,7 +203,7 @@ public class RequestRefundItem implements IClientIncomingPacket
// Update current load status on player // Update current load status on player
final StatusUpdate su = new StatusUpdate(player); final StatusUpdate su = new StatusUpdate(player);
su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad()); su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
player.sendPacket(su); client.sendPacket(su);
player.sendPacket(new ExBuySellList(player, buyList, true)); client.sendPacket(new ExBuySellList(player, buyList, true));
} }
} }

View File

@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import org.l2jmobius.Config; import org.l2jmobius.Config;
@ -37,8 +38,8 @@ public class ExBuySellList implements IClientOutgoingPacket
private final List<Product> _buyList = new ArrayList<>(); private final List<Product> _buyList = new ArrayList<>();
private final long _money; private final long _money;
private double _taxRate = 0; private double _taxRate = 0;
private ItemInstance[] _sellList = null; private Collection<ItemInstance> _sellList = null;
private ItemInstance[] _refundList = null; private Collection<ItemInstance> _refundList = null;
private final boolean _done; private final boolean _done;
public ExBuySellList(PlayerInstance player, BuyListHolder list, boolean done) public ExBuySellList(PlayerInstance player, BuyListHolder list, boolean done)
@ -53,7 +54,7 @@ public class ExBuySellList implements IClientOutgoingPacket
} }
_buyList.add(item); _buyList.add(item);
} }
_sellList = player.getInventory().getAvailableItems(true, false, false); _sellList = player.getInventory().getAvailableItems(false, false, false);
if (player.hasRefund()) if (player.hasRefund())
{ {
_refundList = player.getRefund().getItems(); _refundList = player.getRefund().getItems();
@ -132,9 +133,9 @@ public class ExBuySellList implements IClientOutgoingPacket
packet.writeH(0x00); // Enchant effect 3 packet.writeH(0x00); // Enchant effect 3
} }
if ((_sellList != null) && (_sellList.length > 0)) if ((_sellList != null) && !_sellList.isEmpty())
{ {
packet.writeH(_sellList.length); packet.writeH(_sellList.size());
for (ItemInstance item : _sellList) for (ItemInstance item : _sellList)
{ {
packet.writeH(item.getItem().getType1()); packet.writeH(item.getItem().getType1());
@ -166,9 +167,9 @@ public class ExBuySellList implements IClientOutgoingPacket
packet.writeH(0x00); packet.writeH(0x00);
} }
if ((_refundList != null) && (_refundList.length > 0)) if ((_refundList != null) && !_refundList.isEmpty())
{ {
packet.writeH(_refundList.length); packet.writeH(_refundList.size());
int idx = 0; int idx = 0;
for (ItemInstance item : _refundList) for (ItemInstance item : _refundList)
{ {
@ -199,6 +200,7 @@ public class ExBuySellList implements IClientOutgoingPacket
} }
packet.writeC(_done ? 0x01 : 0x00); packet.writeC(_done ? 0x01 : 0x00);
return true; return true;
} }
} }

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
@ -28,7 +30,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class ExReplyPostItemList implements IClientOutgoingPacket public class ExReplyPostItemList implements IClientOutgoingPacket
{ {
PlayerInstance _player; PlayerInstance _player;
private final ItemInstance[] _itemList; private final Collection<ItemInstance> _itemList;
public ExReplyPostItemList(PlayerInstance player) public ExReplyPostItemList(PlayerInstance player)
{ {
@ -40,7 +42,7 @@ public class ExReplyPostItemList implements IClientOutgoingPacket
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
OutgoingPackets.EX_REPLY_POST_ITEM_LIST.writeId(packet); OutgoingPackets.EX_REPLY_POST_ITEM_LIST.writeId(packet);
packet.writeD(_itemList.length); packet.writeD(_itemList.size());
for (ItemInstance item : _itemList) for (ItemInstance item : _itemList)
{ {
packet.writeD(item.getObjectId()); packet.writeD(item.getObjectId());

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.entity.Message; import org.l2jmobius.gameserver.model.entity.Message;
import org.l2jmobius.gameserver.model.itemcontainer.ItemContainer; import org.l2jmobius.gameserver.model.itemcontainer.ItemContainer;
@ -28,7 +30,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class ExReplyReceivedPost implements IClientOutgoingPacket public class ExReplyReceivedPost implements IClientOutgoingPacket
{ {
private final Message _msg; private final Message _msg;
private ItemInstance[] _items = null; private Collection<ItemInstance> _items = null;
public ExReplyReceivedPost(Message msg) public ExReplyReceivedPost(Message msg)
{ {
@ -58,9 +60,9 @@ public class ExReplyReceivedPost implements IClientOutgoingPacket
packet.writeS(_msg.getSubject()); packet.writeS(_msg.getSubject());
packet.writeS(_msg.getContent()); packet.writeS(_msg.getContent());
if ((_items != null) && (_items.length > 0)) if ((_items != null) && !_items.isEmpty())
{ {
packet.writeD(_items.length); packet.writeD(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
packet.writeH(item.getItem().getType2()); packet.writeH(item.getItem().getType2());

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.entity.Message; import org.l2jmobius.gameserver.model.entity.Message;
import org.l2jmobius.gameserver.model.itemcontainer.ItemContainer; import org.l2jmobius.gameserver.model.itemcontainer.ItemContainer;
@ -29,7 +31,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class ExReplySentPost implements IClientOutgoingPacket public class ExReplySentPost implements IClientOutgoingPacket
{ {
private final Message _msg; private final Message _msg;
private ItemInstance[] _items = null; private Collection<ItemInstance> _items = null;
public ExReplySentPost(Message msg) public ExReplySentPost(Message msg)
{ {
@ -58,9 +60,9 @@ public class ExReplySentPost implements IClientOutgoingPacket
packet.writeS(_msg.getSubject()); packet.writeS(_msg.getSubject());
packet.writeS(_msg.getContent()); packet.writeS(_msg.getContent());
if ((_items != null) && (_items.length > 0)) if ((_items != null) && !_items.isEmpty())
{ {
packet.writeD(_items.length); packet.writeD(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
packet.writeH(item.getItem().getType2()); packet.writeH(item.getItem().getType2());

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.Weapon; import org.l2jmobius.gameserver.model.items.Weapon;
@ -24,7 +26,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class ExShowBaseAttributeCancelWindow implements IClientOutgoingPacket public class ExShowBaseAttributeCancelWindow implements IClientOutgoingPacket
{ {
private final ItemInstance[] _items; private final Collection<ItemInstance> _items;
private long _price; private long _price;
public ExShowBaseAttributeCancelWindow(PlayerInstance player) public ExShowBaseAttributeCancelWindow(PlayerInstance player)
@ -36,7 +38,7 @@ public class ExShowBaseAttributeCancelWindow implements IClientOutgoingPacket
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
OutgoingPackets.EX_SHOW_BASE_ATTRIBUTE_CANCEL_WINDOW.writeId(packet); OutgoingPackets.EX_SHOW_BASE_ATTRIBUTE_CANCEL_WINDOW.writeId(packet);
packet.writeD(_items.length); packet.writeD(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
packet.writeD(item.getObjectId()); packet.writeD(item.getObjectId());

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
@ -24,7 +26,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class GMViewWarehouseWithdrawList extends AbstractItemPacket public class GMViewWarehouseWithdrawList extends AbstractItemPacket
{ {
private final ItemInstance[] _items; private final Collection<ItemInstance> _items;
private final String _playerName; private final String _playerName;
private final long _money; private final long _money;
@ -48,7 +50,7 @@ public class GMViewWarehouseWithdrawList extends AbstractItemPacket
OutgoingPackets.GM_VIEW_WAREHOUSE_WITHDRAW_LIST.writeId(packet); OutgoingPackets.GM_VIEW_WAREHOUSE_WITHDRAW_LIST.writeId(packet);
packet.writeS(_playerName); packet.writeS(_playerName);
packet.writeQ(_money); packet.writeQ(_money);
packet.writeH(_items.length); packet.writeH(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
@ -24,7 +26,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class ItemList extends AbstractItemPacket public class ItemList extends AbstractItemPacket
{ {
private final PlayerInstance _player; private final PlayerInstance _player;
private final ItemInstance[] _items; private final Collection<ItemInstance> _items;
private final boolean _showWindow; private final boolean _showWindow;
public ItemList(PlayerInstance player, boolean showWindow) public ItemList(PlayerInstance player, boolean showWindow)
@ -39,7 +41,7 @@ public class ItemList extends AbstractItemPacket
{ {
OutgoingPackets.ITEM_LIST.writeId(packet); OutgoingPackets.ITEM_LIST.writeId(packet);
packet.writeH(_showWindow ? 0x01 : 0x00); packet.writeH(_showWindow ? 0x01 : 0x00);
packet.writeH(_items.length); packet.writeH(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
@ -26,11 +28,11 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
*/ */
public class PackageSendableList extends AbstractItemPacket public class PackageSendableList extends AbstractItemPacket
{ {
private final ItemInstance[] _items; private final Collection<ItemInstance> _items;
private final int _playerObjId; private final int _playerObjId;
private final long _adena; private final long _adena;
public PackageSendableList(ItemInstance[] items, int playerObjId, long adena) public PackageSendableList(Collection<ItemInstance> items, int playerObjId, long adena)
{ {
_items = items; _items = items;
_playerObjId = playerObjId; _playerObjId = playerObjId;
@ -43,7 +45,7 @@ public class PackageSendableList extends AbstractItemPacket
OutgoingPackets.PACKAGE_SENDABLE_LIST.writeId(packet); OutgoingPackets.PACKAGE_SENDABLE_LIST.writeId(packet);
packet.writeD(_playerObjId); packet.writeD(_playerObjId);
packet.writeQ(_adena); packet.writeQ(_adena);
packet.writeD(_items.length); packet.writeD(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,24 +16,26 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
public class PetItemList extends AbstractItemPacket public class PetItemList extends AbstractItemPacket
{ {
private final ItemInstance[] _items; private final Collection<ItemInstance> _items;
public PetItemList(ItemInstance[] items) public PetItemList(Collection<ItemInstance> collection)
{ {
_items = items; _items = collection;
} }
@Override @Override
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
OutgoingPackets.PET_ITEM_LIST.writeId(packet); OutgoingPackets.PET_ITEM_LIST.writeId(packet);
packet.writeH(_items.length); packet.writeH(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.TradeItem;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@ -26,7 +28,7 @@ public class PrivateStoreManageListBuy implements IClientOutgoingPacket
{ {
private final int _objId; private final int _objId;
private final long _playerAdena; private final long _playerAdena;
private final ItemInstance[] _itemList; private final Collection<ItemInstance> _itemList;
private final TradeItem[] _buyList; private final TradeItem[] _buyList;
public PrivateStoreManageListBuy(PlayerInstance player) public PrivateStoreManageListBuy(PlayerInstance player)
@ -46,7 +48,7 @@ public class PrivateStoreManageListBuy implements IClientOutgoingPacket
packet.writeQ(_playerAdena); packet.writeQ(_playerAdena);
// section2 // section2
packet.writeD(_itemList.length); // inventory items for potential buy packet.writeD(_itemList.size()); // inventory items for potential buy
for (ItemInstance item : _itemList) for (ItemInstance item : _itemList)
{ {
packet.writeD(item.getId()); packet.writeD(item.getId());

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.TradeItem;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@ -26,7 +28,7 @@ public class PrivateStoreManageListSell implements IClientOutgoingPacket
private final int _objId; private final int _objId;
private final long _playerAdena; private final long _playerAdena;
private final boolean _packageSale; private final boolean _packageSale;
private final TradeItem[] _itemList; private final Collection<TradeItem> _itemList;
private final TradeItem[] _sellList; private final TradeItem[] _sellList;
public PrivateStoreManageListSell(PlayerInstance player, boolean isPackageSale) public PrivateStoreManageListSell(PlayerInstance player, boolean isPackageSale)
@ -49,7 +51,7 @@ public class PrivateStoreManageListSell implements IClientOutgoingPacket
packet.writeQ(_playerAdena); packet.writeQ(_playerAdena);
// section2 // section2
packet.writeD(_itemList.length); // for potential sells packet.writeD(_itemList.size()); // for potential sells
for (TradeItem item : _itemList) for (TradeItem item : _itemList)
{ {
packet.writeD(item.getItem().getType2()); packet.writeD(item.getItem().getType2());

View File

@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
@ -452,13 +453,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* <li>Weapon</li> * <li>Weapon</li>
* <li>Arrow</li> * <li>Arrow</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createWeaponList(ItemInstance[] _items) private List<WarehouseItem> createWeaponList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if (item.isWeapon() || (item.getItem().getType2() == Item.TYPE2_WEAPON) || (item.isEtcItem() && (item.getItemType() == EtcItemType.ARROW)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if (item.isWeapon() || (item.getItem().getType2() == Item.TYPE2_WEAPON) || (item.isEtcItem() && (item.getItemType() == EtcItemType.ARROW)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -479,13 +480,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Armor</li> * <li>Armor</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createArmorList(ItemInstance[] _items) private List<WarehouseItem> createArmorList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if (item.isArmor() || (item.getItem().getType2() == Item.TYPE2_MONEY)) if (item.isArmor() || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -506,13 +507,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Everything which is no Weapon/Armor</li> * <li>Everything which is no Weapon/Armor</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createEtcItemList(ItemInstance[] _items) private List<WarehouseItem> createEtcItemList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if (item.isEtcItem() || (item.getItem().getType2() == Item.TYPE2_MONEY)) if (item.isEtcItem() || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -533,13 +534,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Materials</li> * <li>Materials</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createMatList(ItemInstance[] _items) private List<WarehouseItem> createMatList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.MATERIAL)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.MATERIAL)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -560,13 +561,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Recipes</li> * <li>Recipes</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createRecipeList(ItemInstance[] _items) private List<WarehouseItem> createRecipeList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.RECIPE)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.RECIPE)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -587,13 +588,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Amulett</li> * <li>Amulett</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createAmulettList(ItemInstance[] _items) private List<WarehouseItem> createAmulettList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getItemName().toUpperCase().startsWith("AMULET"))) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getItemName().toUpperCase().startsWith("AMULET"))) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -614,13 +615,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Spellbook & Dwarven Drafts</li> * <li>Spellbook & Dwarven Drafts</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createSpellbookList(ItemInstance[] _items) private List<WarehouseItem> createSpellbookList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (!item.getItemName().toUpperCase().startsWith("AMULET"))) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (!item.getItemName().toUpperCase().startsWith("AMULET"))) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -641,13 +642,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Consumables (Potions, Shots, ...)</li> * <li>Consumables (Potions, Shots, ...)</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createConsumableList(ItemInstance[] _items) private List<WarehouseItem> createConsumableList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && ((item.getEtcItem().getItemType() == EtcItemType.SCROLL) || (item.getEtcItem().getItemType() == EtcItemType.SHOT))) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && ((item.getEtcItem().getItemType() == EtcItemType.SCROLL) || (item.getEtcItem().getItemType() == EtcItemType.SHOT))) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -668,13 +669,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Shots</li> * <li>Shots</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createShotList(ItemInstance[] _items) private List<WarehouseItem> createShotList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SHOT)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SHOT)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -695,13 +696,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Scrolls/Potions</li> * <li>Scrolls/Potions</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createScrollList(ItemInstance[] _items) private List<WarehouseItem> createScrollList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SCROLL)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SCROLL)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -722,13 +723,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Seeds</li> * <li>Seeds</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createSeedList(ItemInstance[] _items) private List<WarehouseItem> createSeedList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SEED)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SEED)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -749,13 +750,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Everything which is no Weapon/Armor, Material, Recipe, Spellbook, Scroll or Shot</li> * <li>Everything which is no Weapon/Armor, Material, Recipe, Spellbook, Scroll or Shot</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createOtherList(ItemInstance[] _items) private List<WarehouseItem> createOtherList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && ((item.getEtcItem().getItemType() != EtcItemType.MATERIAL) && (item.getEtcItem().getItemType() != EtcItemType.RECIPE) && (item.getEtcItem().getItemType() != EtcItemType.SCROLL) && (item.getEtcItem().getItemType() != EtcItemType.SHOT))) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && ((item.getEtcItem().getItemType() != EtcItemType.MATERIAL) && (item.getEtcItem().getItemType() != EtcItemType.RECIPE) && (item.getEtcItem().getItemType() != EtcItemType.SCROLL) && (item.getEtcItem().getItemType() != EtcItemType.SHOT))) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -775,13 +776,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
/** /**
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>no limit</li> This may sound strange but we return the given Array as a List<L2WarehouseItem> * <li>no limit</li> This may sound strange but we return the given Array as a List<L2WarehouseItem>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createAllList(ItemInstance[] _items) private List<WarehouseItem> createAllList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if (list.size() < MAX_SORT_LIST_ITEMS) if (list.size() < MAX_SORT_LIST_ITEMS)
{ {

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.PlayerCondOverride; import org.l2jmobius.gameserver.model.PlayerCondOverride;
@ -26,7 +28,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class TradeStart implements IClientOutgoingPacket public class TradeStart implements IClientOutgoingPacket
{ {
private final PlayerInstance _player; private final PlayerInstance _player;
private final ItemInstance[] _itemList; private final Collection<ItemInstance> _itemList;
public TradeStart(PlayerInstance player) public TradeStart(PlayerInstance player)
{ {
@ -44,7 +46,7 @@ public class TradeStart implements IClientOutgoingPacket
OutgoingPackets.TRADE_START.writeId(packet); OutgoingPackets.TRADE_START.writeId(packet);
packet.writeD(_player.getActiveTradeList().getPartner().getObjectId()); packet.writeD(_player.getActiveTradeList().getPartner().getObjectId());
packet.writeH(_itemList.length); packet.writeH(_itemList.size());
for (ItemInstance item : _itemList) for (ItemInstance item : _itemList)
{ {
packet.writeH(item.getItem().getType1()); // item type1 packet.writeH(item.getItem().getType1()); // item type1

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
@ -28,7 +30,7 @@ public class WareHouseWithdrawalList implements IClientOutgoingPacket
public static final int CASTLE = 3; // not sure public static final int CASTLE = 3; // not sure
public static final int FREIGHT = 1; public static final int FREIGHT = 1;
private long _playerAdena; private long _playerAdena;
private ItemInstance[] _items; private Collection<ItemInstance> _items;
/** /**
* <ul> * <ul>
* <li>0x01-Private Warehouse</li> * <li>0x01-Private Warehouse</li>
@ -58,7 +60,7 @@ public class WareHouseWithdrawalList implements IClientOutgoingPacket
OutgoingPackets.WAREHOUSE_WITHDRAW_LIST.writeId(packet); OutgoingPackets.WAREHOUSE_WITHDRAW_LIST.writeId(packet);
packet.writeH(_whType); packet.writeH(_whType);
packet.writeQ(_playerAdena); packet.writeQ(_playerAdena);
packet.writeH(_items.length); packet.writeH(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {

View File

@ -462,7 +462,7 @@ public class PrimevalIsle extends AbstractNpcAI
if ((npc.getId() == SAILREN) || (getRandom(100) < 3)) if ((npc.getId() == SAILREN) || (getRandom(100) < 3))
{ {
final PlayerInstance player = npc.getId() == SAILREN ? getRandomPartyMember(killer) : killer; final PlayerInstance player = npc.getId() == SAILREN ? getRandomPartyMember(killer) : killer;
if (player.getInventory().getSize(false) <= (player.getInventoryLimit() * 0.8)) if (player.isInventoryUnder80(false))
{ {
giveItems(player, DEINONYCHUS, 1); giveItems(player, DEINONYCHUS, 1);
final ItemInstance summonItem = player.getInventory().getItemByItemId(DEINONYCHUS); final ItemInstance summonItem = player.getInventory().getItemByItemId(DEINONYCHUS);

View File

@ -292,9 +292,8 @@ public class Q00350_EnhanceYourWeapon extends Quest
return null; return null;
} }
final ItemInstance[] inv = player.getInventory().getItems();
SoulCrystal ret = null; SoulCrystal ret = null;
for (ItemInstance item : inv) for (ItemInstance item : player.getInventory().getItems())
{ {
final int itemId = item.getId(); final int itemId = item.getId();
if (!SOUL_CRYSTALS.containsKey(itemId)) if (!SOUL_CRYSTALS.containsKey(itemId))

View File

@ -937,6 +937,7 @@
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="material" val="GOLD" /> <set name="material" val="GOLD" />
<set name="price" val="1" /> <set name="price" val="1" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
</item> </item>
<item id="58" type="Armor" name="Mithril Breastplate"> <item id="58" type="Armor" name="Mithril Breastplate">

View File

@ -13930,13 +13930,23 @@ public class PlayerInstance extends Playable
} }
/** /**
* Test if player inventory is under 90% capaity * Test if player inventory is under 90% capacity
* @param includeQuestInv check also quest inventory * @param includeQuestInv check also quest inventory
* @return * @return
*/ */
public boolean isInventoryUnder90(boolean includeQuestInv) public boolean isInventoryUnder90(boolean includeQuestInv)
{ {
return _inventory.getSize(includeQuestInv) <= (getInventoryLimit() * 0.9); return (_inventory.getSize(item -> !item.isQuestItem() || includeQuestInv) <= (getInventoryLimit() * 0.9));
}
/**
* Test if player inventory is under 80% capacity
* @param includeQuestInv check also quest inventory
* @return
*/
public boolean isInventoryUnder80(boolean includeQuestInv)
{
return (_inventory.getSize(item -> !item.isQuestItem() || includeQuestInv) <= (getInventoryLimit() * 0.8));
} }
public boolean havePetInvItems() public boolean havePetInvItems()

View File

@ -40,6 +40,10 @@ public class ConditionPlayerInvSize extends Condition
@Override @Override
public boolean testImpl(Creature effector, Creature effected, Skill skill, Item item) public boolean testImpl(Creature effector, Creature effected, Skill skill, Item item)
{ {
return (effector.getActingPlayer() == null) || (effector.getActingPlayer().getInventory().getSize(false) <= (effector.getActingPlayer().getInventoryLimit() - _size)); if (effector.getActingPlayer() != null)
{
return effector.getActingPlayer().getInventory().getSize(i -> !i.isQuestItem()) <= (effector.getActingPlayer().getInventoryLimit() - _size);
}
return true;
} }
} }

View File

@ -41,11 +41,11 @@ public class ConditionTargetInvSize extends Condition
@Override @Override
public boolean testImpl(Creature effector, Creature effected, Skill skill, Item item) public boolean testImpl(Creature effector, Creature effected, Skill skill, Item item)
{ {
if ((effected == null) || !effected.isPlayer()) if ((effected != null) && effected.isPlayer())
{ {
return false; final PlayerInstance target = effected.getActingPlayer();
return target.getInventory().getSize(i -> !i.isQuestItem()) <= (target.getInventoryLimit() - _size);
} }
final PlayerInstance target = effected.getActingPlayer(); return false;
return target.getInventory().getSize(false) <= (target.getInventoryLimit() - _size);
} }
} }

View File

@ -21,6 +21,8 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -107,7 +109,7 @@ public abstract class Inventory extends ItemContainer
private static final class ChangeRecorder implements PaperdollListener private static final class ChangeRecorder implements PaperdollListener
{ {
private final Inventory _inventory; private final Inventory _inventory;
private final List<ItemInstance> _changed; private final Set<ItemInstance> _changed = ConcurrentHashMap.newKeySet();
/** /**
* Constructor of the ChangeRecorder * Constructor of the ChangeRecorder
@ -116,7 +118,6 @@ public abstract class Inventory extends ItemContainer
ChangeRecorder(Inventory inventory) ChangeRecorder(Inventory inventory)
{ {
_inventory = inventory; _inventory = inventory;
_changed = new ArrayList<>();
_inventory.addPaperdollListener(this); _inventory.addPaperdollListener(this);
} }
@ -129,10 +130,7 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyEquiped(int slot, ItemInstance item, Inventory inventory) public void notifyEquiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (!_changed.contains(item)) _changed.add(item);
{
_changed.add(item);
}
} }
/** /**
@ -144,10 +142,7 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (!_changed.contains(item)) _changed.add(item);
{
_changed.add(item);
}
} }
/** /**
@ -180,7 +175,6 @@ public abstract class Inventory extends ItemContainer
if (item.getItemType() == WeaponType.BOW) if (item.getItemType() == WeaponType.BOW)
{ {
final ItemInstance arrow = inventory.getPaperdollItem(PAPERDOLL_LHAND); final ItemInstance arrow = inventory.getPaperdollItem(PAPERDOLL_LHAND);
if (arrow != null) if (arrow != null)
{ {
inventory.setPaperdollItem(PAPERDOLL_LHAND, null); inventory.setPaperdollItem(PAPERDOLL_LHAND, null);
@ -189,7 +183,6 @@ public abstract class Inventory extends ItemContainer
else if (item.getItemType() == WeaponType.CROSSBOW) else if (item.getItemType() == WeaponType.CROSSBOW)
{ {
final ItemInstance bolts = inventory.getPaperdollItem(PAPERDOLL_LHAND); final ItemInstance bolts = inventory.getPaperdollItem(PAPERDOLL_LHAND);
if (bolts != null) if (bolts != null)
{ {
inventory.setPaperdollItem(PAPERDOLL_LHAND, null); inventory.setPaperdollItem(PAPERDOLL_LHAND, null);
@ -198,7 +191,6 @@ public abstract class Inventory extends ItemContainer
else if (item.getItemType() == WeaponType.FISHINGROD) else if (item.getItemType() == WeaponType.FISHINGROD)
{ {
final ItemInstance lure = inventory.getPaperdollItem(PAPERDOLL_LHAND); final ItemInstance lure = inventory.getPaperdollItem(PAPERDOLL_LHAND);
if (lure != null) if (lure != null)
{ {
inventory.setPaperdollItem(PAPERDOLL_LHAND, null); inventory.setPaperdollItem(PAPERDOLL_LHAND, null);
@ -217,7 +209,6 @@ public abstract class Inventory extends ItemContainer
if (item.getItemType() == WeaponType.BOW) if (item.getItemType() == WeaponType.BOW)
{ {
final ItemInstance arrow = inventory.findArrowForBow(item.getItem()); final ItemInstance arrow = inventory.findArrowForBow(item.getItem());
if (arrow != null) if (arrow != null)
{ {
inventory.setPaperdollItem(PAPERDOLL_LHAND, arrow); inventory.setPaperdollItem(PAPERDOLL_LHAND, arrow);
@ -226,7 +217,6 @@ public abstract class Inventory extends ItemContainer
else if (item.getItemType() == WeaponType.CROSSBOW) else if (item.getItemType() == WeaponType.CROSSBOW)
{ {
final ItemInstance bolts = inventory.findBoltForCrossBow(item.getItem()); final ItemInstance bolts = inventory.findBoltForCrossBow(item.getItem());
if (bolts != null) if (bolts != null)
{ {
inventory.setPaperdollItem(PAPERDOLL_LHAND, bolts); inventory.setPaperdollItem(PAPERDOLL_LHAND, bolts);
@ -273,8 +263,8 @@ public abstract class Inventory extends ItemContainer
{ {
return; return;
} }
final PlayerInstance player = (PlayerInstance) inventory.getOwner();
final PlayerInstance player = (PlayerInstance) inventory.getOwner();
Skill enchant4Skill; Skill enchant4Skill;
Skill itemSkill; Skill itemSkill;
final Item it = item.getItem(); final Item it = item.getItem();

View File

@ -19,9 +19,11 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.Collection;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.function.Predicate;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -45,8 +47,6 @@ public abstract class ItemContainer
protected final List<ItemInstance> _items = new CopyOnWriteArrayList<>(); protected final List<ItemInstance> _items = new CopyOnWriteArrayList<>();
int _ownerId = 0;
protected ItemContainer() protected ItemContainer()
{ {
} }
@ -65,12 +65,7 @@ public abstract class ItemContainer
*/ */
public int getOwnerId() public int getOwnerId()
{ {
return getOwner() == null ? _ownerId : getOwner().getObjectId(); return getOwner() == null ? 0 : getOwner().getObjectId();
}
public void setOwnerId(int id)
{
_ownerId = id;
} }
/** /**
@ -82,11 +77,27 @@ public abstract class ItemContainer
} }
/** /**
* @return the items in inventory * @param filter
* @param filters
* @return the quantity of items in the inventory
*/ */
public ItemInstance[] getItems() @SafeVarargs
public final int getSize(Predicate<ItemInstance> filter, Predicate<ItemInstance>... filters)
{ {
return _items.toArray(new ItemInstance[_items.size()]); for (Predicate<ItemInstance> additionalFilter : filters)
{
filter = filter.and(additionalFilter);
}
return (int) _items.stream().filter(filter).count();
}
/**
* Gets the items in inventory.
* @return the items in inventory.
*/
public Collection<ItemInstance> getItems()
{
return _items;
} }
/** /**

View File

@ -19,7 +19,8 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.LinkedList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -54,9 +55,6 @@ public class PlayerInventory extends Inventory
private int[] _blockItems = null; private int[] _blockItems = null;
private int _questSlots;
private final Object _lock;
/** /**
* Block modes: * Block modes:
* <UL> * <UL>
@ -70,7 +68,6 @@ public class PlayerInventory extends Inventory
public PlayerInventory(PlayerInstance owner) public PlayerInventory(PlayerInstance owner)
{ {
_owner = owner; _owner = owner;
_lock = new Object();
} }
@Override @Override
@ -118,14 +115,14 @@ public class PlayerInventory extends Inventory
* @param allowAncientAdena * @param allowAncientAdena
* @return ItemInstance : items in inventory * @return ItemInstance : items in inventory
*/ */
public ItemInstance[] getUniqueItems(boolean allowAdena, boolean allowAncientAdena) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena)
{ {
return getUniqueItems(allowAdena, allowAncientAdena, true); return getUniqueItems(allowAdena, allowAncientAdena, true);
} }
public ItemInstance[] getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item == null) || (!allowAdena && (item.getId() == ADENA_ID)) || (!allowAncientAdena && (item.getId() == ANCIENT_ADENA_ID))) if ((item == null) || (!allowAdena && (item.getId() == ADENA_ID)) || (!allowAncientAdena && (item.getId() == ANCIENT_ADENA_ID)))
@ -146,7 +143,7 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
@ -155,14 +152,14 @@ public class PlayerInventory extends Inventory
* @param allowAncientAdena * @param allowAncientAdena
* @return ItemInstance : items in inventory * @return ItemInstance : items in inventory
*/ */
public ItemInstance[] getUniqueItemsByEnchantLevel(boolean allowAdena, boolean allowAncientAdena) public Collection<ItemInstance> getUniqueItemsByEnchantLevel(boolean allowAdena, boolean allowAncientAdena)
{ {
return getUniqueItemsByEnchantLevel(allowAdena, allowAncientAdena, true); return getUniqueItemsByEnchantLevel(allowAdena, allowAncientAdena, true);
} }
public ItemInstance[] getUniqueItemsByEnchantLevel(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItemsByEnchantLevel(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item == null) || (!allowAdena && (item.getId() == ADENA_ID)) || (!allowAncientAdena && (item.getId() == ANCIENT_ADENA_ID))) if ((item == null) || (!allowAdena && (item.getId() == ADENA_ID)) || (!allowAncientAdena && (item.getId() == ANCIENT_ADENA_ID)))
@ -185,14 +182,14 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
* @param itemId * @param itemId
* @return * @return
*/ */
public ItemInstance[] getAllItemsByItemId(int itemId) public Collection<ItemInstance> getAllItemsByItemId(int itemId)
{ {
return getAllItemsByItemId(itemId, true); return getAllItemsByItemId(itemId, true);
} }
@ -201,11 +198,11 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return List<ItemInstance> : matching items from inventory
*/ */
public ItemInstance[] getAllItemsByItemId(int itemId, boolean includeEquipped) public List<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if (item == null) if (item == null)
@ -218,7 +215,7 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
@ -226,7 +223,7 @@ public class PlayerInventory extends Inventory
* @param enchantment * @param enchantment
* @return * @return
*/ */
public ItemInstance[] getAllItemsByItemId(int itemId, int enchantment) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment)
{ {
return getAllItemsByItemId(itemId, enchantment, true); return getAllItemsByItemId(itemId, enchantment, true);
} }
@ -236,11 +233,11 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return List<ItemInstance> : matching items from inventory
*/ */
public ItemInstance[] getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public List<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if (item == null) if (item == null)
@ -253,7 +250,7 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
@ -262,9 +259,9 @@ public class PlayerInventory extends Inventory
* @param feightable * @param feightable
* @return the list of items in inventory available for transaction * @return the list of items in inventory available for transaction
*/ */
public ItemInstance[] getAvailableItems(boolean allowAdena, boolean allowNonTradeable, boolean feightable) public Collection<ItemInstance> getAvailableItems(boolean allowAdena, boolean allowNonTradeable, boolean feightable)
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item == null) || !item.isAvailable(_owner, allowAdena, allowNonTradeable) || !canManipulateWithItemId(item.getId())) if ((item == null) || !item.isAvailable(_owner, allowAdena, allowNonTradeable) || !canManipulateWithItemId(item.getId()))
@ -283,16 +280,16 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
* Get all augmented items * Get all augmented items
* @return * @return
*/ */
public ItemInstance[] getAugmentedItems() public Collection<ItemInstance> getAugmentedItems()
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item != null) && item.isAugmented()) if ((item != null) && item.isAugmented())
@ -300,16 +297,16 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
* Get all element items * Get all element items
* @return * @return
*/ */
public ItemInstance[] getElementItems() public Collection<ItemInstance> getElementItems()
{ {
final List<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item != null) && (item.getElementals() != null)) if ((item != null) && (item.getElementals() != null))
@ -317,7 +314,7 @@ public class PlayerInventory extends Inventory
list.add(item); list.add(item);
} }
} }
return list.toArray(new ItemInstance[list.size()]); return list;
} }
/** /**
@ -325,9 +322,9 @@ public class PlayerInventory extends Inventory
* @param tradeList * @param tradeList
* @return ItemInstance : items in inventory * @return ItemInstance : items in inventory
*/ */
public TradeItem[] getAvailableItems(TradeList tradeList) public Collection<TradeItem> getAvailableItems(TradeList tradeList)
{ {
final List<TradeItem> list = new LinkedList<>(); final List<TradeItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
if ((item != null) && item.isAvailable(_owner, false, false)) if ((item != null) && item.isAvailable(_owner, false, false))
@ -339,7 +336,7 @@ public class PlayerInventory extends Inventory
} }
} }
} }
return list.toArray(new TradeItem[list.size()]); return list;
} }
/** /**
@ -714,18 +711,6 @@ public class PlayerInventory extends Inventory
_ancientAdena = null; _ancientAdena = null;
} }
if (item.isQuestItem())
{
synchronized (_lock)
{
_questSlots--;
if (_questSlots < 0)
{
_questSlots = 0;
LOGGER.warning(this + ": QuestInventory size < 0!");
}
}
}
return super.removeItem(item); return super.removeItem(item);
} }
@ -852,7 +837,7 @@ public class PlayerInventory extends Inventory
public boolean validateCapacity(long slots, boolean questItem) public boolean validateCapacity(long slots, boolean questItem)
{ {
return ((slots == 0) && !Config.AUTO_LOOT_SLOT_LIMIT) || questItem ? (_questSlots + slots) <= _owner.getQuestInventoryLimit() : ((_items.size() - _questSlots) + slots) <= _owner.getInventoryLimit(); return ((slots == 0) && !Config.AUTO_LOOT_SLOT_LIMIT) || questItem ? (getSize(item -> item.isQuestItem()) + slots) <= _owner.getQuestInventoryLimit() : (getSize(item -> !item.isQuestItem()) + slots) <= _owner.getInventoryLimit();
} }
@Override @Override
@ -936,24 +921,6 @@ public class PlayerInventory extends Inventory
return ((_blockMode != 0) || !CommonUtil.contains(_blockItems, itemId)) && ((_blockMode != 1) || CommonUtil.contains(_blockItems, itemId)); return ((_blockMode != 0) || !CommonUtil.contains(_blockItems, itemId)) && ((_blockMode != 1) || CommonUtil.contains(_blockItems, itemId));
} }
@Override
protected void addItem(ItemInstance item)
{
if (item.isQuestItem())
{
synchronized (_lock)
{
_questSlots++;
}
}
super.addItem(item);
}
public int getSize(boolean quest)
{
return quest ? _questSlots : getSize() - _questSlots;
}
@Override @Override
public String toString() public String toString()
{ {

View File

@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.model.multisell; package org.l2jmobius.gameserver.model.multisell;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList; import java.util.LinkedList;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
@ -50,7 +51,7 @@ public class PreparedListContainer extends ListContainer
return; return;
} }
final ItemInstance[] items; final Collection<ItemInstance> items;
if (getMaintainEnchantment()) if (getMaintainEnchantment())
{ {
items = player.getInventory().getUniqueItemsByEnchantLevel(false, false, false); items = player.getInventory().getUniqueItemsByEnchantLevel(false, false, false);

View File

@ -300,18 +300,18 @@ public class MultiSellChoose implements IClientIncomingPacket
if (list.getMaintainEnchantment() || (e.getEnchantLevel() > 0)) if (list.getMaintainEnchantment() || (e.getEnchantLevel() > 0))
{ {
// loop through this list and remove (one by one) each item until the required amount is taken. // loop through this list and remove (one by one) each item until the required amount is taken.
final ItemInstance[] inventoryContents = inv.getAllItemsByItemId(e.getItemId(), e.getEnchantLevel(), false); final List<ItemInstance> inventoryContents = inv.getAllItemsByItemId(e.getItemId(), e.getEnchantLevel(), false);
for (int i = 0; i < (e.getItemCount() * _amount); i++) for (int i = 0; i < (e.getItemCount() * _amount); i++)
{ {
if (inventoryContents[i].isAugmented()) if (inventoryContents.get(i).isAugmented())
{ {
augmentation.add(inventoryContents[i].getAugmentation()); augmentation.add(inventoryContents.get(i).getAugmentation());
} }
if (inventoryContents[i].getElementals() != null) if (inventoryContents.get(i).getElementals() != null)
{ {
elemental = inventoryContents[i].getElementals(); elemental = inventoryContents.get(i).getElementals();
} }
if (!player.destroyItem("Multisell", inventoryContents[i].getObjectId(), 1, player.getTarget(), true)) if (!player.destroyItem("Multisell", inventoryContents.get(i).getObjectId(), 1, player.getTarget(), true))
{ {
player.setMultiSell(null); player.setMultiSell(null);
return; return;
@ -358,9 +358,9 @@ public class MultiSellChoose implements IClientIncomingPacket
// choice 1. Small number of items exchanged. No sorting. // choice 1. Small number of items exchanged. No sorting.
for (int i = 1; i <= (e.getItemCount() * _amount); i++) for (int i = 1; i <= (e.getItemCount() * _amount); i++)
{ {
final ItemInstance[] inventoryContents = inv.getAllItemsByItemId(e.getItemId(), false); final List<ItemInstance> inventoryContents = inv.getAllItemsByItemId(e.getItemId(), false);
itemToTake = inventoryContents[0]; itemToTake = inventoryContents.get(0);
// get item with the LOWEST enchantment level from the inventory... // get item with the LOWEST enchantment level from the inventory...
// +0 is lowest by default... // +0 is lowest by default...
if (itemToTake.getEnchantLevel() > 0) if (itemToTake.getEnchantLevel() > 0)

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.clientpackets; package org.l2jmobius.gameserver.network.clientpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.GameClient;
@ -39,7 +41,7 @@ public class RequestPackageSendableItemList implements IClientIncomingPacket
@Override @Override
public void run(GameClient client) public void run(GameClient client)
{ {
final ItemInstance[] items = client.getPlayer().getInventory().getAvailableItems(true, true, true); final Collection<ItemInstance> items = client.getPlayer().getInventory().getAvailableItems(true, true, true);
client.sendPacket(new PackageSendableList(items, _objectID, client.getPlayer().getAdena())); client.sendPacket(new PackageSendableList(items, _objectID, client.getPlayer().getAdena()));
} }
} }

View File

@ -79,13 +79,7 @@ public class RequestRefundItem implements IClientIncomingPacket
return; return;
} }
if (_items == null) if ((_items == null) || !player.hasRefund())
{
client.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (!player.hasRefund())
{ {
client.sendPacket(ActionFailed.STATIC_PACKET); client.sendPacket(ActionFailed.STATIC_PACKET);
return; return;
@ -126,7 +120,7 @@ public class RequestRefundItem implements IClientIncomingPacket
long adena = 0; long adena = 0;
long slots = 0; long slots = 0;
final ItemInstance[] refund = player.getRefund().getItems(); final ItemInstance[] refund = player.getRefund().getItems().toArray(new ItemInstance[0]);
final int[] objectIds = new int[_items.length]; final int[] objectIds = new int[_items.length];
for (int i = 0; i < _items.length; i++) for (int i = 0; i < _items.length; i++)
@ -177,21 +171,21 @@ public class RequestRefundItem implements IClientIncomingPacket
if ((weight > Integer.MAX_VALUE) || (weight < 0) || !player.getInventory().validateWeight((int) weight)) if ((weight > Integer.MAX_VALUE) || (weight < 0) || !player.getInventory().validateWeight((int) weight))
{ {
player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT); client.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
client.sendPacket(ActionFailed.STATIC_PACKET); client.sendPacket(ActionFailed.STATIC_PACKET);
return; return;
} }
if ((slots > Integer.MAX_VALUE) || (slots < 0) || !player.getInventory().validateCapacity((int) slots)) if ((slots > Integer.MAX_VALUE) || (slots < 0) || !player.getInventory().validateCapacity((int) slots))
{ {
player.sendPacket(SystemMessageId.YOUR_INVENTORY_IS_FULL); client.sendPacket(SystemMessageId.YOUR_INVENTORY_IS_FULL);
client.sendPacket(ActionFailed.STATIC_PACKET); client.sendPacket(ActionFailed.STATIC_PACKET);
return; return;
} }
if ((adena < 0) || !player.reduceAdena("Refund", adena, player.getLastFolkNPC(), false)) if ((adena < 0) || !player.reduceAdena("Refund", adena, player.getLastFolkNPC(), false))
{ {
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA); client.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
client.sendPacket(ActionFailed.STATIC_PACKET); client.sendPacket(ActionFailed.STATIC_PACKET);
return; return;
} }
@ -209,7 +203,7 @@ public class RequestRefundItem implements IClientIncomingPacket
// Update current load status on player // Update current load status on player
final StatusUpdate su = new StatusUpdate(player); final StatusUpdate su = new StatusUpdate(player);
su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad()); su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
player.sendPacket(su); client.sendPacket(su);
player.sendPacket(new ExBuySellList(player, true)); client.sendPacket(new ExBuySellList(player, true));
} }
} }

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
@ -26,8 +28,8 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
*/ */
public class ExBuySellList extends AbstractItemPacket public class ExBuySellList extends AbstractItemPacket
{ {
private ItemInstance[] _sellList = null; private Collection<ItemInstance> _sellList = null;
private ItemInstance[] _refundList = null; private Collection<ItemInstance> _refundList = null;
private final boolean _done; private final boolean _done;
public ExBuySellList(PlayerInstance player, boolean done) public ExBuySellList(PlayerInstance player, boolean done)
@ -48,7 +50,7 @@ public class ExBuySellList extends AbstractItemPacket
if ((_sellList != null)) if ((_sellList != null))
{ {
packet.writeH(_sellList.length); packet.writeH(_sellList.size());
for (ItemInstance item : _sellList) for (ItemInstance item : _sellList)
{ {
writeItem(packet, item); writeItem(packet, item);
@ -60,9 +62,9 @@ public class ExBuySellList extends AbstractItemPacket
packet.writeH(0x00); packet.writeH(0x00);
} }
if ((_refundList != null) && (_refundList.length > 0)) if ((_refundList != null) && (!_refundList.isEmpty()))
{ {
packet.writeH(_refundList.length); packet.writeH(_refundList.size());
int i = 0; int i = 0;
for (ItemInstance item : _refundList) for (ItemInstance item : _refundList)
{ {

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
@ -28,7 +30,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class ExReplyPostItemList extends AbstractItemPacket public class ExReplyPostItemList extends AbstractItemPacket
{ {
PlayerInstance _player; PlayerInstance _player;
private final ItemInstance[] _itemList; private final Collection<ItemInstance> _itemList;
public ExReplyPostItemList(PlayerInstance player) public ExReplyPostItemList(PlayerInstance player)
{ {
@ -40,7 +42,7 @@ public class ExReplyPostItemList extends AbstractItemPacket
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
OutgoingPackets.EX_REPLY_POST_ITEM_LIST.writeId(packet); OutgoingPackets.EX_REPLY_POST_ITEM_LIST.writeId(packet);
packet.writeD(_itemList.length); packet.writeD(_itemList.size());
for (ItemInstance item : _itemList) for (ItemInstance item : _itemList)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.entity.Message; import org.l2jmobius.gameserver.model.entity.Message;
import org.l2jmobius.gameserver.model.itemcontainer.ItemContainer; import org.l2jmobius.gameserver.model.itemcontainer.ItemContainer;
@ -28,7 +30,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class ExReplyReceivedPost extends AbstractItemPacket public class ExReplyReceivedPost extends AbstractItemPacket
{ {
private final Message _msg; private final Message _msg;
private ItemInstance[] _items = null; private Collection<ItemInstance> _items = null;
public ExReplyReceivedPost(Message msg) public ExReplyReceivedPost(Message msg)
{ {
@ -58,9 +60,9 @@ public class ExReplyReceivedPost extends AbstractItemPacket
packet.writeS(_msg.getSubject()); packet.writeS(_msg.getSubject());
packet.writeS(_msg.getContent()); packet.writeS(_msg.getContent());
if ((_items != null) && (_items.length > 0)) if ((_items != null) && !_items.isEmpty())
{ {
packet.writeD(_items.length); packet.writeD(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.entity.Message; import org.l2jmobius.gameserver.model.entity.Message;
import org.l2jmobius.gameserver.model.itemcontainer.ItemContainer; import org.l2jmobius.gameserver.model.itemcontainer.ItemContainer;
@ -29,7 +31,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class ExReplySentPost extends AbstractItemPacket public class ExReplySentPost extends AbstractItemPacket
{ {
private final Message _msg; private final Message _msg;
private ItemInstance[] _items = null; private Collection<ItemInstance> _items = null;
public ExReplySentPost(Message msg) public ExReplySentPost(Message msg)
{ {
@ -58,9 +60,9 @@ public class ExReplySentPost extends AbstractItemPacket
packet.writeS(_msg.getSubject()); packet.writeS(_msg.getSubject());
packet.writeS(_msg.getContent()); packet.writeS(_msg.getContent());
if ((_items != null) && (_items.length > 0)) if ((_items != null) && !_items.isEmpty())
{ {
packet.writeD(_items.length); packet.writeD(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.Weapon; import org.l2jmobius.gameserver.model.items.Weapon;
@ -24,7 +26,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class ExShowBaseAttributeCancelWindow implements IClientOutgoingPacket public class ExShowBaseAttributeCancelWindow implements IClientOutgoingPacket
{ {
private final ItemInstance[] _items; private final Collection<ItemInstance> _items;
private long _price; private long _price;
public ExShowBaseAttributeCancelWindow(PlayerInstance player) public ExShowBaseAttributeCancelWindow(PlayerInstance player)
@ -36,7 +38,7 @@ public class ExShowBaseAttributeCancelWindow implements IClientOutgoingPacket
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
OutgoingPackets.EX_SHOW_BASE_ATTRIBUTE_CANCEL_WINDOW.writeId(packet); OutgoingPackets.EX_SHOW_BASE_ATTRIBUTE_CANCEL_WINDOW.writeId(packet);
packet.writeD(_items.length); packet.writeD(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
packet.writeD(item.getObjectId()); packet.writeD(item.getObjectId());

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
@ -24,7 +26,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class GMViewWarehouseWithdrawList extends AbstractItemPacket public class GMViewWarehouseWithdrawList extends AbstractItemPacket
{ {
private final ItemInstance[] _items; private final Collection<ItemInstance> _items;
private final String _playerName; private final String _playerName;
private final long _money; private final long _money;
@ -48,7 +50,7 @@ public class GMViewWarehouseWithdrawList extends AbstractItemPacket
OutgoingPackets.GM_VIEW_WAREHOUSE_WITHDRAW_LIST.writeId(packet); OutgoingPackets.GM_VIEW_WAREHOUSE_WITHDRAW_LIST.writeId(packet);
packet.writeS(_playerName); packet.writeS(_playerName);
packet.writeQ(_money); packet.writeQ(_money);
packet.writeH(_items.length); packet.writeH(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
@ -26,11 +28,11 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
*/ */
public class PackageSendableList extends AbstractItemPacket public class PackageSendableList extends AbstractItemPacket
{ {
private final ItemInstance[] _items; private final Collection<ItemInstance> _items;
private final int _playerObjId; private final int _playerObjId;
private final long _adena; private final long _adena;
public PackageSendableList(ItemInstance[] items, int playerObjId, long adena) public PackageSendableList(Collection<ItemInstance> items, int playerObjId, long adena)
{ {
_items = items; _items = items;
_playerObjId = playerObjId; _playerObjId = playerObjId;
@ -43,7 +45,7 @@ public class PackageSendableList extends AbstractItemPacket
OutgoingPackets.PACKAGE_SENDABLE_LIST.writeId(packet); OutgoingPackets.PACKAGE_SENDABLE_LIST.writeId(packet);
packet.writeD(_playerObjId); packet.writeD(_playerObjId);
packet.writeQ(_adena); packet.writeQ(_adena);
packet.writeD(_items.length); packet.writeD(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,24 +16,26 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
public class PetItemList extends AbstractItemPacket public class PetItemList extends AbstractItemPacket
{ {
private final ItemInstance[] _items; private final Collection<ItemInstance> _items;
public PetItemList(ItemInstance[] items) public PetItemList(Collection<ItemInstance> collection)
{ {
_items = items; _items = collection;
} }
@Override @Override
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
OutgoingPackets.PET_ITEM_LIST.writeId(packet); OutgoingPackets.PET_ITEM_LIST.writeId(packet);
packet.writeH(_items.length); packet.writeH(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.TradeItem;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@ -26,7 +28,7 @@ public class PrivateStoreManageListBuy extends AbstractItemPacket
{ {
private final int _objId; private final int _objId;
private final long _playerAdena; private final long _playerAdena;
private final ItemInstance[] _itemList; private final Collection<ItemInstance> _itemList;
private final TradeItem[] _buyList; private final TradeItem[] _buyList;
public PrivateStoreManageListBuy(PlayerInstance player) public PrivateStoreManageListBuy(PlayerInstance player)
@ -46,7 +48,7 @@ public class PrivateStoreManageListBuy extends AbstractItemPacket
packet.writeQ(_playerAdena); packet.writeQ(_playerAdena);
// section2 // section2
packet.writeD(_itemList.length); // inventory items for potential buy packet.writeD(_itemList.size()); // inventory items for potential buy
for (ItemInstance item : _itemList) for (ItemInstance item : _itemList)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.TradeItem;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@ -26,7 +28,7 @@ public class PrivateStoreManageListSell extends AbstractItemPacket
private final int _objId; private final int _objId;
private final long _playerAdena; private final long _playerAdena;
private final boolean _packageSale; private final boolean _packageSale;
private final TradeItem[] _itemList; private final Collection<TradeItem> _itemList;
private final TradeItem[] _sellList; private final TradeItem[] _sellList;
public PrivateStoreManageListSell(PlayerInstance player, boolean isPackageSale) public PrivateStoreManageListSell(PlayerInstance player, boolean isPackageSale)
@ -49,7 +51,7 @@ public class PrivateStoreManageListSell extends AbstractItemPacket
packet.writeQ(_playerAdena); packet.writeQ(_playerAdena);
// section2 // section2
packet.writeD(_itemList.length); // for potential sells packet.writeD(_itemList.size()); // for potential sells
for (TradeItem item : _itemList) for (TradeItem item : _itemList)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
@ -452,13 +453,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* <li>Weapon</li> * <li>Weapon</li>
* <li>Arrow</li> * <li>Arrow</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createWeaponList(ItemInstance[] _items) private List<WarehouseItem> createWeaponList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if (item.isWeapon() || (item.getItem().getType2() == Item.TYPE2_WEAPON) || (item.isEtcItem() && (item.getItemType() == EtcItemType.ARROW)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if (item.isWeapon() || (item.getItem().getType2() == Item.TYPE2_WEAPON) || (item.isEtcItem() && (item.getItemType() == EtcItemType.ARROW)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -479,13 +480,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Armor</li> * <li>Armor</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createArmorList(ItemInstance[] _items) private List<WarehouseItem> createArmorList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if (item.isArmor() || (item.getItem().getType2() == Item.TYPE2_MONEY)) if (item.isArmor() || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -506,13 +507,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Everything which is no Weapon/Armor</li> * <li>Everything which is no Weapon/Armor</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createEtcItemList(ItemInstance[] _items) private List<WarehouseItem> createEtcItemList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if (item.isEtcItem() || (item.getItem().getType2() == Item.TYPE2_MONEY)) if (item.isEtcItem() || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -533,13 +534,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Materials</li> * <li>Materials</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createMatList(ItemInstance[] _items) private List<WarehouseItem> createMatList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.MATERIAL)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.MATERIAL)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -560,13 +561,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Recipes</li> * <li>Recipes</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createRecipeList(ItemInstance[] _items) private List<WarehouseItem> createRecipeList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.RECIPE)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.RECIPE)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -587,13 +588,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Amulett</li> * <li>Amulett</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createAmulettList(ItemInstance[] _items) private List<WarehouseItem> createAmulettList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getItemName().toUpperCase().startsWith("AMULET"))) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getItemName().toUpperCase().startsWith("AMULET"))) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -614,13 +615,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Spellbook & Dwarven Drafts</li> * <li>Spellbook & Dwarven Drafts</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createSpellbookList(ItemInstance[] _items) private List<WarehouseItem> createSpellbookList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (!item.getItemName().toUpperCase().startsWith("AMULET"))) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (!item.getItemName().toUpperCase().startsWith("AMULET"))) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -641,13 +642,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Consumables (Potions, Shots, ...)</li> * <li>Consumables (Potions, Shots, ...)</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createConsumableList(ItemInstance[] _items) private List<WarehouseItem> createConsumableList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && ((item.getEtcItem().getItemType() == EtcItemType.SCROLL) || (item.getEtcItem().getItemType() == EtcItemType.SHOT))) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && ((item.getEtcItem().getItemType() == EtcItemType.SCROLL) || (item.getEtcItem().getItemType() == EtcItemType.SHOT))) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -668,13 +669,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Shots</li> * <li>Shots</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createShotList(ItemInstance[] _items) private List<WarehouseItem> createShotList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SHOT)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SHOT)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -695,13 +696,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Scrolls/Potions</li> * <li>Scrolls/Potions</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createScrollList(ItemInstance[] _items) private List<WarehouseItem> createScrollList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SCROLL)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SCROLL)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -722,13 +723,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Seeds</li> * <li>Seeds</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createSeedList(ItemInstance[] _items) private List<WarehouseItem> createSeedList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SEED)) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SEED)) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -749,13 +750,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>Everything which is no Weapon/Armor, Material, Recipe, Spellbook, Scroll or Shot</li> * <li>Everything which is no Weapon/Armor, Material, Recipe, Spellbook, Scroll or Shot</li>
* <li>Money</li> * <li>Money</li>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createOtherList(ItemInstance[] _items) private List<WarehouseItem> createOtherList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if ((item.isEtcItem() && ((item.getEtcItem().getItemType() != EtcItemType.MATERIAL) && (item.getEtcItem().getItemType() != EtcItemType.RECIPE) && (item.getEtcItem().getItemType() != EtcItemType.SCROLL) && (item.getEtcItem().getItemType() != EtcItemType.SHOT))) || (item.getItem().getType2() == Item.TYPE2_MONEY)) if ((item.isEtcItem() && ((item.getEtcItem().getItemType() != EtcItemType.MATERIAL) && (item.getEtcItem().getItemType() != EtcItemType.RECIPE) && (item.getEtcItem().getItemType() != EtcItemType.SCROLL) && (item.getEtcItem().getItemType() != EtcItemType.SHOT))) || (item.getItem().getType2() == Item.TYPE2_MONEY))
{ {
@ -775,13 +776,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
/** /**
* This method is used to limit the given Warehouse List to: * This method is used to limit the given Warehouse List to:
* <li>no limit</li> This may sound strange but we return the given Array as a List<L2WarehouseItem> * <li>no limit</li> This may sound strange but we return the given Array as a List<L2WarehouseItem>
* @param _items complete Warehouse List * @param items complete Warehouse List
* @return limited Item List * @return limited Item List
*/ */
private List<WarehouseItem> createAllList(ItemInstance[] _items) private List<WarehouseItem> createAllList(Collection<ItemInstance> items)
{ {
final List<WarehouseItem> list = new ArrayList<>(); final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items) for (ItemInstance item : items)
{ {
if (list.size() < MAX_SORT_LIST_ITEMS) if (list.size() < MAX_SORT_LIST_ITEMS)
{ {

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.PlayerCondOverride; import org.l2jmobius.gameserver.model.PlayerCondOverride;
@ -26,7 +28,7 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
public class TradeStart extends AbstractItemPacket public class TradeStart extends AbstractItemPacket
{ {
private final PlayerInstance _player; private final PlayerInstance _player;
private final ItemInstance[] _itemList; private final Collection<ItemInstance> _itemList;
public TradeStart(PlayerInstance player) public TradeStart(PlayerInstance player)
{ {
@ -44,7 +46,7 @@ public class TradeStart extends AbstractItemPacket
OutgoingPackets.TRADE_START.writeId(packet); OutgoingPackets.TRADE_START.writeId(packet);
packet.writeD(_player.getActiveTradeList().getPartner().getObjectId()); packet.writeD(_player.getActiveTradeList().getPartner().getObjectId());
packet.writeH(_itemList.length); packet.writeH(_itemList.size());
for (ItemInstance item : _itemList) for (ItemInstance item : _itemList)
{ {
writeItem(packet, item); writeItem(packet, item);

View File

@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
@ -28,7 +30,7 @@ public class WareHouseWithdrawalList extends AbstractItemPacket
public static final int CASTLE = 3; // not sure public static final int CASTLE = 3; // not sure
public static final int FREIGHT = 1; public static final int FREIGHT = 1;
private long _playerAdena; private long _playerAdena;
private ItemInstance[] _items; private Collection<ItemInstance> _items;
/** /**
* <ul> * <ul>
* <li>0x01-Private Warehouse</li> * <li>0x01-Private Warehouse</li>
@ -58,7 +60,7 @@ public class WareHouseWithdrawalList extends AbstractItemPacket
OutgoingPackets.WAREHOUSE_WITHDRAW_LIST.writeId(packet); OutgoingPackets.WAREHOUSE_WITHDRAW_LIST.writeId(packet);
packet.writeH(_whType); packet.writeH(_whType);
packet.writeQ(_playerAdena); packet.writeQ(_playerAdena);
packet.writeH(_items.length); packet.writeH(_items.size());
for (ItemInstance item : _items) for (ItemInstance item : _items)
{ {

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/ */
public class ConditionPlayerInvSize extends Condition public class ConditionPlayerInvSize extends Condition
{ {
private final int _size; private final int _size;
/** /**

View File

@ -544,11 +544,7 @@ public abstract class ItemContainer
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -563,11 +559,7 @@ public abstract class ItemContainer
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**

View File

@ -19,9 +19,9 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.logging.Level; import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable) public Collection<ItemInstance> getUniqueItems(boolean allowAdena, boolean allowAncientAdena, boolean onlyAvailable)
{ {
final Collection<ItemInstance> list = new LinkedList<>(); final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items.values()) for (ItemInstance item : _items.values())
{ {
if (!allowAdena && (item.getId() == ADENA_ID)) if (!allowAdena && (item.getId() == ADENA_ID))
@ -172,7 +172,7 @@ public class PlayerInventory extends Inventory
* Returns the list of all items in inventory that have a given item id. * Returns the list of all items in inventory that have a given item id.
* @param itemId : ID of item * @param itemId : ID of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, boolean includeEquipped)
{ {
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item * @param itemId : ID of item
* @param enchantment : enchant level of item * @param enchantment : enchant level of item
* @param includeEquipped : include equipped items * @param includeEquipped : include equipped items
* @return ItemInstance[] : matching items from inventory * @return Collection<ItemInstance> : matching items from inventory
*/ */
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped) public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment, boolean includeEquipped)
{ {
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false)) .filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem) .map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new)); .collect(Collectors.toCollection(ArrayList::new));
//@formatter:on //@formatter:on
} }
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/ */
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference) public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{ {
if (count > 0) return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
} }
/** /**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByObjectId(objectId); final ItemInstance item = getItemByObjectId(objectId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**
@ -611,11 +603,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference) public ItemInstance destroyItemByItemId(String process, int itemId, long count, PlayerInstance actor, Object reference)
{ {
final ItemInstance item = getItemByItemId(itemId); final ItemInstance item = getItemByItemId(itemId);
if (item == null) return item == null ? null : destroyItem(process, item, count, actor, reference);
{
return null;
}
return destroyItem(process, item, count, actor, reference);
} }
/** /**