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
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -462,7 +462,7 @@ public class PrimevalIsle extends AbstractNpcAI
if ((npc.getId() == SAILREN) || (getRandom(100) < 3))
{
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);
final ItemInstance summonItem = player.getInventory().getItemByItemId(DEINONYCHUS);

View File

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

View File

@ -937,6 +937,7 @@
<set name="immediate_effect" val="true" />
<set name="material" val="GOLD" />
<set name="price" val="1" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
</item>
<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
* @return
*/
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()

View File

@ -40,6 +40,10 @@ public class ConditionPlayerInvSize extends Condition
@Override
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
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 target.getInventory().getSize(false) <= (target.getInventoryLimit() - _size);
return false;
}
}

View File

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

View File

@ -19,9 +19,11 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.function.Predicate;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -45,8 +47,6 @@ public abstract class ItemContainer
protected final List<ItemInstance> _items = new CopyOnWriteArrayList<>();
int _ownerId = 0;
protected ItemContainer()
{
}
@ -65,12 +65,7 @@ public abstract class ItemContainer
*/
public int getOwnerId()
{
return getOwner() == null ? _ownerId : getOwner().getObjectId();
}
public void setOwnerId(int id)
{
_ownerId = id;
return getOwner() == null ? 0 : getOwner().getObjectId();
}
/**
@ -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.PreparedStatement;
import java.sql.ResultSet;
import java.util.LinkedList;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -54,9 +55,6 @@ public class PlayerInventory extends Inventory
private int[] _blockItems = null;
private int _questSlots;
private final Object _lock;
/**
* Block modes:
* <UL>
@ -70,7 +68,6 @@ public class PlayerInventory extends Inventory
public PlayerInventory(PlayerInstance owner)
{
_owner = owner;
_lock = new Object();
}
@Override
@ -118,14 +115,14 @@ public class PlayerInventory extends Inventory
* @param allowAncientAdena
* @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);
}
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)
{
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);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
@ -155,14 +152,14 @@ public class PlayerInventory extends Inventory
* @param allowAncientAdena
* @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);
}
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)
{
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);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
* @param itemId
* @return
*/
public ItemInstance[] getAllItemsByItemId(int itemId)
public Collection<ItemInstance> getAllItemsByItemId(int itemId)
{
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.
* @param itemId : ID of item
* @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)
{
if (item == null)
@ -218,7 +215,7 @@ public class PlayerInventory extends Inventory
list.add(item);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
@ -226,7 +223,7 @@ public class PlayerInventory extends Inventory
* @param enchantment
* @return
*/
public ItemInstance[] getAllItemsByItemId(int itemId, int enchantment)
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment)
{
return getAllItemsByItemId(itemId, enchantment, true);
}
@ -236,11 +233,11 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
if (item == null)
@ -253,7 +250,7 @@ public class PlayerInventory extends Inventory
list.add(item);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
@ -262,9 +259,9 @@ public class PlayerInventory extends Inventory
* @param feightable
* @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)
{
if ((item == null) || !item.isAvailable(_owner, allowAdena, allowNonTradeable) || !canManipulateWithItemId(item.getId()))
@ -283,16 +280,16 @@ public class PlayerInventory extends Inventory
list.add(item);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
* Get all augmented items
* @return
*/
public ItemInstance[] getAugmentedItems()
public Collection<ItemInstance> getAugmentedItems()
{
final List<ItemInstance> list = new LinkedList<>();
final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items)
{
if ((item != null) && item.isAugmented())
@ -300,16 +297,16 @@ public class PlayerInventory extends Inventory
list.add(item);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
* Get all element items
* @return
*/
public ItemInstance[] getElementItems()
public Collection<ItemInstance> getElementItems()
{
final List<ItemInstance> list = new LinkedList<>();
final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items)
{
if ((item != null) && (item.getElementals() != null))
@ -317,7 +314,7 @@ public class PlayerInventory extends Inventory
list.add(item);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
@ -325,9 +322,9 @@ public class PlayerInventory extends Inventory
* @param tradeList
* @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)
{
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;
}
if (item.isQuestItem())
{
synchronized (_lock)
{
_questSlots--;
if (_questSlots < 0)
{
_questSlots = 0;
LOGGER.warning(this + ": QuestInventory size < 0!");
}
}
}
return super.removeItem(item);
}
@ -852,7 +837,7 @@ public class PlayerInventory extends Inventory
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
@ -936,24 +921,6 @@ public class PlayerInventory extends Inventory
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
public String toString()
{

View File

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

View File

@ -300,18 +300,18 @@ public class MultiSellChoose implements IClientIncomingPacket
if (list.getMaintainEnchantment() || (e.getEnchantLevel() > 0))
{
// 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++)
{
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);
return;
@ -358,9 +358,9 @@ public class MultiSellChoose implements IClientIncomingPacket
// choice 1. Small number of items exchanged. No sorting.
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...
// +0 is lowest by default...
if (itemToTake.getEnchantLevel() > 0)

View File

@ -16,6 +16,8 @@
*/
package org.l2jmobius.gameserver.network.clientpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.GameClient;
@ -39,7 +41,7 @@ public class RequestPackageSendableItemList implements IClientIncomingPacket
@Override
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()));
}
}

View File

@ -79,13 +79,7 @@ public class RequestRefundItem implements IClientIncomingPacket
return;
}
if (_items == null)
{
client.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (!player.hasRefund())
if ((_items == null) || !player.hasRefund())
{
client.sendPacket(ActionFailed.STATIC_PACKET);
return;
@ -126,7 +120,7 @@ public class RequestRefundItem implements IClientIncomingPacket
long adena = 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];
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))
{
player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
client.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
client.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
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);
return;
}
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);
return;
}
@ -209,7 +203,7 @@ public class RequestRefundItem implements IClientIncomingPacket
// Update current load status on player
final StatusUpdate su = new StatusUpdate(player);
su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
player.sendPacket(su);
player.sendPacket(new ExBuySellList(player, buyList, true));
client.sendPacket(su);
client.sendPacket(new ExBuySellList(player, buyList, true));
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -16,24 +16,26 @@
*/
package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.OutgoingPackets;
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
public boolean write(PacketWriter packet)
{
OutgoingPackets.PET_ITEM_LIST.writeId(packet);
packet.writeH(_items.length);
packet.writeH(_items.size());
for (ItemInstance item : _items)
{
writeItem(packet, item);

View File

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

View File

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

View File

@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@ -452,13 +453,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* <li>Weapon</li>
* <li>Arrow</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createWeaponList(ItemInstance[] _items)
private List<WarehouseItem> createWeaponList(Collection<ItemInstance> items)
{
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))
{
@ -479,13 +480,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Armor</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createArmorList(ItemInstance[] _items)
private List<WarehouseItem> createArmorList(Collection<ItemInstance> items)
{
final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items)
for (ItemInstance item : items)
{
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:
* <li>Everything which is no Weapon/Armor</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createEtcItemList(ItemInstance[] _items)
private List<WarehouseItem> createEtcItemList(Collection<ItemInstance> items)
{
final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items)
for (ItemInstance item : items)
{
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:
* <li>Materials</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createMatList(ItemInstance[] _items)
private List<WarehouseItem> createMatList(Collection<ItemInstance> items)
{
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))
{
@ -560,13 +561,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Recipes</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createRecipeList(ItemInstance[] _items)
private List<WarehouseItem> createRecipeList(Collection<ItemInstance> items)
{
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))
{
@ -587,13 +588,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Amulett</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createAmulettList(ItemInstance[] _items)
private List<WarehouseItem> createAmulettList(Collection<ItemInstance> items)
{
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))
{
@ -614,13 +615,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Spellbook & Dwarven Drafts</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createSpellbookList(ItemInstance[] _items)
private List<WarehouseItem> createSpellbookList(Collection<ItemInstance> items)
{
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))
{
@ -641,13 +642,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Consumables (Potions, Shots, ...)</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createConsumableList(ItemInstance[] _items)
private List<WarehouseItem> createConsumableList(Collection<ItemInstance> items)
{
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))
{
@ -668,13 +669,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Shots</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createShotList(ItemInstance[] _items)
private List<WarehouseItem> createShotList(Collection<ItemInstance> items)
{
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))
{
@ -695,13 +696,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Scrolls/Potions</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createScrollList(ItemInstance[] _items)
private List<WarehouseItem> createScrollList(Collection<ItemInstance> items)
{
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))
{
@ -722,13 +723,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Seeds</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createSeedList(ItemInstance[] _items)
private List<WarehouseItem> createSeedList(Collection<ItemInstance> items)
{
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))
{
@ -749,13 +750,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* 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>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createOtherList(ItemInstance[] _items)
private List<WarehouseItem> createOtherList(Collection<ItemInstance> items)
{
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))
{
@ -775,13 +776,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
/**
* 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>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createAllList(ItemInstance[] _items)
private List<WarehouseItem> createAllList(Collection<ItemInstance> items)
{
final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items)
for (ItemInstance item : items)
{
if (list.size() < MAX_SORT_LIST_ITEMS)
{

View File

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

View File

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

View File

@ -462,7 +462,7 @@ public class PrimevalIsle extends AbstractNpcAI
if ((npc.getId() == SAILREN) || (getRandom(100) < 3))
{
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);
final ItemInstance summonItem = player.getInventory().getItemByItemId(DEINONYCHUS);

View File

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

View File

@ -937,6 +937,7 @@
<set name="immediate_effect" val="true" />
<set name="material" val="GOLD" />
<set name="price" val="1" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
</item>
<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
* @return
*/
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()

View File

@ -40,6 +40,10 @@ public class ConditionPlayerInvSize extends Condition
@Override
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
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 target.getInventory().getSize(false) <= (target.getInventoryLimit() - _size);
return false;
}
}

View File

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

View File

@ -19,9 +19,11 @@ package org.l2jmobius.gameserver.model.itemcontainer;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.function.Predicate;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -45,8 +47,6 @@ public abstract class ItemContainer
protected final List<ItemInstance> _items = new CopyOnWriteArrayList<>();
int _ownerId = 0;
protected ItemContainer()
{
}
@ -65,12 +65,7 @@ public abstract class ItemContainer
*/
public int getOwnerId()
{
return getOwner() == null ? _ownerId : getOwner().getObjectId();
}
public void setOwnerId(int id)
{
_ownerId = id;
return getOwner() == null ? 0 : getOwner().getObjectId();
}
/**
@ -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.PreparedStatement;
import java.sql.ResultSet;
import java.util.LinkedList;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -54,9 +55,6 @@ public class PlayerInventory extends Inventory
private int[] _blockItems = null;
private int _questSlots;
private final Object _lock;
/**
* Block modes:
* <UL>
@ -70,7 +68,6 @@ public class PlayerInventory extends Inventory
public PlayerInventory(PlayerInstance owner)
{
_owner = owner;
_lock = new Object();
}
@Override
@ -118,14 +115,14 @@ public class PlayerInventory extends Inventory
* @param allowAncientAdena
* @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);
}
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)
{
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);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
@ -155,14 +152,14 @@ public class PlayerInventory extends Inventory
* @param allowAncientAdena
* @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);
}
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)
{
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);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
* @param itemId
* @return
*/
public ItemInstance[] getAllItemsByItemId(int itemId)
public Collection<ItemInstance> getAllItemsByItemId(int itemId)
{
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.
* @param itemId : ID of item
* @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)
{
if (item == null)
@ -218,7 +215,7 @@ public class PlayerInventory extends Inventory
list.add(item);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
@ -226,7 +223,7 @@ public class PlayerInventory extends Inventory
* @param enchantment
* @return
*/
public ItemInstance[] getAllItemsByItemId(int itemId, int enchantment)
public Collection<ItemInstance> getAllItemsByItemId(int itemId, int enchantment)
{
return getAllItemsByItemId(itemId, enchantment, true);
}
@ -236,11 +233,11 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
if (item == null)
@ -253,7 +250,7 @@ public class PlayerInventory extends Inventory
list.add(item);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
@ -262,9 +259,9 @@ public class PlayerInventory extends Inventory
* @param feightable
* @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)
{
if ((item == null) || !item.isAvailable(_owner, allowAdena, allowNonTradeable) || !canManipulateWithItemId(item.getId()))
@ -283,16 +280,16 @@ public class PlayerInventory extends Inventory
list.add(item);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
* Get all augmented items
* @return
*/
public ItemInstance[] getAugmentedItems()
public Collection<ItemInstance> getAugmentedItems()
{
final List<ItemInstance> list = new LinkedList<>();
final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items)
{
if ((item != null) && item.isAugmented())
@ -300,16 +297,16 @@ public class PlayerInventory extends Inventory
list.add(item);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
* Get all element items
* @return
*/
public ItemInstance[] getElementItems()
public Collection<ItemInstance> getElementItems()
{
final List<ItemInstance> list = new LinkedList<>();
final List<ItemInstance> list = new ArrayList<>();
for (ItemInstance item : _items)
{
if ((item != null) && (item.getElementals() != null))
@ -317,7 +314,7 @@ public class PlayerInventory extends Inventory
list.add(item);
}
}
return list.toArray(new ItemInstance[list.size()]);
return list;
}
/**
@ -325,9 +322,9 @@ public class PlayerInventory extends Inventory
* @param tradeList
* @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)
{
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;
}
if (item.isQuestItem())
{
synchronized (_lock)
{
_questSlots--;
if (_questSlots < 0)
{
_questSlots = 0;
LOGGER.warning(this + ": QuestInventory size < 0!");
}
}
}
return super.removeItem(item);
}
@ -852,7 +837,7 @@ public class PlayerInventory extends Inventory
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
@ -936,24 +921,6 @@ public class PlayerInventory extends Inventory
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
public String toString()
{

View File

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

View File

@ -300,18 +300,18 @@ public class MultiSellChoose implements IClientIncomingPacket
if (list.getMaintainEnchantment() || (e.getEnchantLevel() > 0))
{
// 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++)
{
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);
return;
@ -358,9 +358,9 @@ public class MultiSellChoose implements IClientIncomingPacket
// choice 1. Small number of items exchanged. No sorting.
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...
// +0 is lowest by default...
if (itemToTake.getEnchantLevel() > 0)

View File

@ -16,6 +16,8 @@
*/
package org.l2jmobius.gameserver.network.clientpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.GameClient;
@ -39,7 +41,7 @@ public class RequestPackageSendableItemList implements IClientIncomingPacket
@Override
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()));
}
}

View File

@ -79,13 +79,7 @@ public class RequestRefundItem implements IClientIncomingPacket
return;
}
if (_items == null)
{
client.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (!player.hasRefund())
if ((_items == null) || !player.hasRefund())
{
client.sendPacket(ActionFailed.STATIC_PACKET);
return;
@ -126,7 +120,7 @@ public class RequestRefundItem implements IClientIncomingPacket
long adena = 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];
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))
{
player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
client.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
client.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
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);
return;
}
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);
return;
}
@ -209,7 +203,7 @@ public class RequestRefundItem implements IClientIncomingPacket
// Update current load status on player
final StatusUpdate su = new StatusUpdate(player);
su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
player.sendPacket(su);
player.sendPacket(new ExBuySellList(player, true));
client.sendPacket(su);
client.sendPacket(new ExBuySellList(player, true));
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -16,24 +16,26 @@
*/
package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Collection;
import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.OutgoingPackets;
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
public boolean write(PacketWriter packet)
{
OutgoingPackets.PET_ITEM_LIST.writeId(packet);
packet.writeH(_items.length);
packet.writeH(_items.size());
for (ItemInstance item : _items)
{
writeItem(packet, item);

View File

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

View File

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

View File

@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@ -452,13 +453,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* <li>Weapon</li>
* <li>Arrow</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createWeaponList(ItemInstance[] _items)
private List<WarehouseItem> createWeaponList(Collection<ItemInstance> items)
{
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))
{
@ -479,13 +480,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Armor</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createArmorList(ItemInstance[] _items)
private List<WarehouseItem> createArmorList(Collection<ItemInstance> items)
{
final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items)
for (ItemInstance item : items)
{
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:
* <li>Everything which is no Weapon/Armor</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createEtcItemList(ItemInstance[] _items)
private List<WarehouseItem> createEtcItemList(Collection<ItemInstance> items)
{
final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items)
for (ItemInstance item : items)
{
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:
* <li>Materials</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createMatList(ItemInstance[] _items)
private List<WarehouseItem> createMatList(Collection<ItemInstance> items)
{
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))
{
@ -560,13 +561,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Recipes</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createRecipeList(ItemInstance[] _items)
private List<WarehouseItem> createRecipeList(Collection<ItemInstance> items)
{
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))
{
@ -587,13 +588,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Amulett</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createAmulettList(ItemInstance[] _items)
private List<WarehouseItem> createAmulettList(Collection<ItemInstance> items)
{
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))
{
@ -614,13 +615,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Spellbook & Dwarven Drafts</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createSpellbookList(ItemInstance[] _items)
private List<WarehouseItem> createSpellbookList(Collection<ItemInstance> items)
{
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))
{
@ -641,13 +642,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Consumables (Potions, Shots, ...)</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createConsumableList(ItemInstance[] _items)
private List<WarehouseItem> createConsumableList(Collection<ItemInstance> items)
{
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))
{
@ -668,13 +669,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Shots</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createShotList(ItemInstance[] _items)
private List<WarehouseItem> createShotList(Collection<ItemInstance> items)
{
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))
{
@ -695,13 +696,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Scrolls/Potions</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createScrollList(ItemInstance[] _items)
private List<WarehouseItem> createScrollList(Collection<ItemInstance> items)
{
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))
{
@ -722,13 +723,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* This method is used to limit the given Warehouse List to:
* <li>Seeds</li>
* <li>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createSeedList(ItemInstance[] _items)
private List<WarehouseItem> createSeedList(Collection<ItemInstance> items)
{
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))
{
@ -749,13 +750,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
* 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>Money</li>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createOtherList(ItemInstance[] _items)
private List<WarehouseItem> createOtherList(Collection<ItemInstance> items)
{
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))
{
@ -775,13 +776,13 @@ public class SortedWareHouseWithdrawalList implements IClientOutgoingPacket
/**
* 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>
* @param _items complete Warehouse List
* @param items complete Warehouse List
* @return limited Item List
*/
private List<WarehouseItem> createAllList(ItemInstance[] _items)
private List<WarehouseItem> createAllList(Collection<ItemInstance> items)
{
final List<WarehouseItem> list = new ArrayList<>();
for (ItemInstance item : _items)
for (ItemInstance item : items)
{
if (list.size() < MAX_SORT_LIST_ITEMS)
{

View File

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

View File

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

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.skills.Skill;
*/
public class ConditionPlayerInvSize extends Condition
{
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)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
@ -130,7 +130,7 @@ public class PlayerInventory extends Inventory
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())
{
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.
* @param itemId : ID of item
* @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)
{
@ -194,7 +194,7 @@ public class PlayerInventory extends Inventory
* @param itemId : ID of item
* @param enchantment : enchant level of item
* @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)
{
@ -235,7 +235,7 @@ public class PlayerInventory extends Inventory
.filter(i -> i.isAvailable(_owner, false, false))
.map(tradeList::adjustAvailableItem)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedList::new));
.collect(Collectors.toCollection(ArrayList::new));
//@formatter:on
}
@ -367,11 +367,7 @@ public class PlayerInventory extends Inventory
*/
public boolean reduceAncientAdena(String process, long count, PlayerInstance actor, Object reference)
{
if (count > 0)
{
return destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null;
}
return false;
return (count > 0) && (destroyItemByItemId(process, ANCIENT_ADENA_ID, count, actor, reference) != null);
}
/**
@ -591,11 +587,7 @@ public class PlayerInventory extends Inventory
public ItemInstance destroyItem(String process, int objectId, long count, PlayerInstance actor, Object reference)
{
final ItemInstance item = getItemByObjectId(objectId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : 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)
{
final ItemInstance item = getItemByItemId(itemId);
if (item == null)
{
return null;
}
return destroyItem(process, item, count, actor, reference);
return item == null ? null : destroyItem(process, item, count, actor, reference);
}
/**