Item container related cleanup.
This commit is contained in:
@@ -823,12 +823,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);
|
||||
}
|
||||
|
||||
|
||||
@@ -651,6 +651,7 @@ public class PlayerInventory extends Inventory
|
||||
{
|
||||
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(actor, item, item.getLocation()), item.getItem());
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@ public class RequestDropItem implements IClientIncomingPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Flood protect drop to avoid packet lag
|
||||
if (!client.getFloodProtectors().getDropItem().tryPerformAction("drop item"))
|
||||
{
|
||||
@@ -78,6 +79,7 @@ public class RequestDropItem implements IClientIncomingPacket
|
||||
player.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DISCARDED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (item.isQuestItem() && !(player.canOverrideCond(PlayerCondOverride.DROP_ALL_ITEMS) && Config.GM_TRADE_RESTRICTED_ITEMS))
|
||||
{
|
||||
return;
|
||||
@@ -125,12 +127,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;
|
||||
@@ -189,7 +193,6 @@ public class RequestDropItem implements IClientIncomingPacket
|
||||
}
|
||||
player.sendPacket(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
player.sendPacket(new ItemList(player, true));
|
||||
}
|
||||
|
||||
|
||||
@@ -94,13 +94,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.");
|
||||
@@ -123,9 +124,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)");
|
||||
@@ -135,11 +136,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)
|
||||
{
|
||||
@@ -169,10 +170,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)");
|
||||
@@ -184,7 +185,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