Item container related cleanup.
This commit is contained in:
		| @@ -928,12 +928,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
	 MobiusDevelopment
					MobiusDevelopment