Item container related cleanup.
This commit is contained in:
@ -922,12 +922,13 @@ public abstract class Inventory extends ItemContainer
|
||||
item.setLastChange(ItemInstance.MODIFIED);
|
||||
item.updateDatabase();
|
||||
|
||||
item = ItemTable.getInstance().createItem(process, item.getId(), count, actor, reference);
|
||||
item.updateDatabase();
|
||||
final ItemInstance newItem = ItemTable.getInstance().createItem(process, item.getId(), count, actor, reference);
|
||||
newItem.updateDatabase();
|
||||
refreshWeight();
|
||||
return item;
|
||||
return newItem;
|
||||
}
|
||||
}
|
||||
|
||||
return dropItem(process, item, actor, reference);
|
||||
}
|
||||
|
||||
|
@ -389,22 +389,25 @@ public abstract class ItemContainer
|
||||
if (count == item.getCount())
|
||||
{
|
||||
removeItem(item);
|
||||
}
|
||||
else
|
||||
{
|
||||
item.changeCount(process, -count, actor, reference);
|
||||
|
||||
item.setItemLocation(newLocation);
|
||||
item.updateDatabase(true);
|
||||
item = ItemTable.getInstance().createItem(process, item.getId(), count, actor, reference);
|
||||
item.setOwnerId(getOwnerId());
|
||||
refreshWeight();
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
item.setItemLocation(newLocation);
|
||||
item.changeCount(process, -count, actor, reference);
|
||||
item.updateDatabase(true);
|
||||
|
||||
final ItemInstance newItem = ItemTable.getInstance().createItem(process, item.getId(), count, actor, reference);
|
||||
newItem.setOwnerId(getOwnerId());
|
||||
newItem.setItemLocation(newLocation);
|
||||
newItem.updateDatabase(true);
|
||||
refreshWeight();
|
||||
|
||||
return newItem;
|
||||
}
|
||||
|
||||
refreshWeight();
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -658,6 +658,7 @@ public class PlayerInventory extends Inventory
|
||||
{
|
||||
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(actor, item, item.getLocation()), item.getItem());
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
|
@ -63,6 +63,7 @@ public class RequestDropItem implements IClientIncomingPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Flood protect drop to avoid packet lag
|
||||
if (!client.getFloodProtectors().getDropItem().tryPerformAction("drop item"))
|
||||
{
|
||||
@ -75,6 +76,7 @@ public class RequestDropItem implements IClientIncomingPacket
|
||||
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (item.isQuestItem() && !(player.canOverrideCond(PlayerCondOverride.DROP_ALL_ITEMS) && Config.GM_TRADE_RESTRICTED_ITEMS))
|
||||
{
|
||||
return;
|
||||
@ -122,12 +124,14 @@ public class RequestDropItem implements IClientIncomingPacket
|
||||
player.sendPacket(SystemMessageId.WHILE_OPERATING_A_PRIVATE_STORE_OR_WORKSHOP_YOU_CANNOT_DISCARD_DESTROY_OR_TRADE_AN_ITEM);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isFishing())
|
||||
{
|
||||
// You can't mount, dismount, break and drop items while fishing
|
||||
player.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_FISHING_2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isFlying())
|
||||
{
|
||||
return;
|
||||
|
@ -92,13 +92,14 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
final boolean isPrivate = warehouse instanceof PlayerWarehouse;
|
||||
|
||||
final Npc manager = player.getLastFolkNPC();
|
||||
if (((manager == null) || !manager.isWarehouse() || !manager.canInteract(player)) && !player.isGM())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final boolean isPrivate = warehouse instanceof PlayerWarehouse;
|
||||
if (!isPrivate && !player.getAccessLevel().allowTransaction())
|
||||
{
|
||||
player.sendMessage("Transactions are disabled for your Access Level.");
|
||||
@ -121,9 +122,9 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
|
||||
final long fee = _items.size() * 30;
|
||||
long currentAdena = player.getAdena();
|
||||
int slots = 0;
|
||||
for (ItemHolder i : _items)
|
||||
for (ItemHolder itemHolder : _items)
|
||||
{
|
||||
final ItemInstance item = player.checkItemManipulation(i.getId(), i.getCount(), "deposit");
|
||||
final ItemInstance item = player.checkItemManipulation(itemHolder.getId(), itemHolder.getCount(), "deposit");
|
||||
if (item == null)
|
||||
{
|
||||
LOGGER.warning("Error depositing a warehouse object for char " + player.getName() + " (validity check)");
|
||||
@ -133,11 +134,11 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
|
||||
// Calculate needed adena and slots
|
||||
if (item.getId() == ADENA_ID)
|
||||
{
|
||||
currentAdena -= i.getCount();
|
||||
currentAdena -= itemHolder.getCount();
|
||||
}
|
||||
if (!item.isStackable())
|
||||
{
|
||||
slots += i.getCount();
|
||||
slots += itemHolder.getCount();
|
||||
}
|
||||
else if (warehouse.getItemByItemId(item.getId()) == null)
|
||||
{
|
||||
@ -167,10 +168,10 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
|
||||
|
||||
// Proceed to the transfer
|
||||
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate();
|
||||
for (ItemHolder i : _items)
|
||||
for (ItemHolder itemHolder : _items)
|
||||
{
|
||||
// Check validity of requested item
|
||||
final ItemInstance oldItem = player.checkItemManipulation(i.getId(), i.getCount(), "deposit");
|
||||
final ItemInstance oldItem = player.checkItemManipulation(itemHolder.getId(), itemHolder.getCount(), "deposit");
|
||||
if (oldItem == null)
|
||||
{
|
||||
LOGGER.warning("Error depositing a warehouse object for char " + player.getName() + " (olditem == null)");
|
||||
@ -182,7 +183,7 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
|
||||
continue;
|
||||
}
|
||||
|
||||
final ItemInstance newItem = player.getInventory().transferItem(warehouse.getName(), i.getId(), i.getCount(), warehouse, player, manager);
|
||||
final ItemInstance newItem = player.getInventory().transferItem(warehouse.getName(), itemHolder.getId(), itemHolder.getCount(), warehouse, player, manager);
|
||||
if (newItem == null)
|
||||
{
|
||||
LOGGER.warning("Error depositing a warehouse object for char " + player.getName() + " (newitem == null)");
|
||||
|
Reference in New Issue
Block a user