Tous les collages #41988 Brut Modifier

Something

public java v1 · immuable
#41988 ·publié 2006-02-17 20:42 UTC
corps du collage affiché
/** *  */package net.sf.l2j.gameserver.model;import java.util.List;import java.util.logging.Logger;import net.sf.l2j.gameserver.ItemTable;import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;/** * @author zabbix * Lets drink to code! *//** * Buy/Sell list handler implementation *  * BuySellList(seller,buyer) *  * seller puts his items to sellist, buyer - to buylist */public class BuySellList{	protected static Logger _log = Logger.getLogger(BuySellList.class.getName());		private List<BuySellItem> _buyItems;	// for buyer	private List<BuySellItem> _sellItems;	// for seller		private L2PcInstance _seller;			// seller	private L2PcInstance _buyer;				// buyer	public BuySellList(L2PcInstance seller, L2PcInstance buyer)	{		_seller = seller;		_buyer = buyer;	}		/**	 * Add item to buy/sell list	 * @param objectId	 * @param amount	 * @return	 */	public boolean addItem(Integer objectId, Integer amount, boolean buy)	{		L2Object item = L2World.getInstance().findObject(objectId);				if(!(item instanceof L2ItemInstance))		{			_log.warning("[BuySellList] attempt to add non-item instance to buy list!");			return false;		}				if(!((L2ItemInstance)item).isStackable() && amount > 1)		{			_log.warning("[BuySellList] attempt to add non-stackable item with count > 1!");			return false;		}		if(buy)		{			_buyItems.add(new BuySellItem(objectId,amount));		}		else		{			_sellItems.add(new BuySellItem(objectId,amount));		}				return true;	}			public void tradeItems()	{		if(!validateTrade())		{			_log.warning("[BuySellList] trade validation failed");			return;		}				/**		 * TradeLists are valid, so lets exchange items...		 * Lets start from seller move items from him to buyer...		 */				for(BuySellItem inst : _sellItems)		{			L2ItemInstance sellItem = _seller.getInventory().getItemByObjectId(inst.getItemObjectId());						if(sellItem.isStackable() && sellItem.getCount() > inst.getItemAmount())			{				L2ItemInstance newStackable = ItemTable.getInstance().createItem(sellItem.getItemId());				newStackable.setCount(inst.getItemAmount());				_buyer.getInventory().addItem(newStackable);				sellItem.setCount((sellItem.getCount()-inst.getItemAmount()));			}			else			{				sellItem.setOwnerId(_buyer.getObjectId());				sellItem.updateDatabase();			}		}		_sellItems.clear();				/**		 * kk, lets continue with buyer now...		 */				for(BuySellItem inst : _buyItems)		{			L2ItemInstance buyItem = _buyer.getInventory().getItemByObjectId(inst.getItemObjectId());						if(buyItem.isStackable() && buyItem.getCount() > inst.getItemAmount())			{				L2ItemInstance newStackable = ItemTable.getInstance().createItem(buyItem.getItemId());				newStackable.setCount(inst.getItemAmount());				_seller.getInventory().addItem(newStackable);				buyItem.setCount((buyItem.getCount()-inst.getItemAmount()));			}			else			{				buyItem.setOwnerId(_seller.getObjectId());				buyItem.updateDatabase();			}		}				_buyItems.clear();	}		private boolean validateTrade()	{		L2World world = L2World.getInstance();		if(_buyer == null || world.findObject(_buyer.getObjectId()) == null)		{			_log.warning("[BuySellList] buyer instance are invalid");			return false;		}				for(BuySellItem instance : _buyItems)		{			if(world.findObject(instance.getItemObjectId()) == null				|| _buyer.getInventory().getItemByObjectId(instance.getItemObjectId()) == null				|| instance.getItemAmount() <= 0 )			{				return false;			}		}		for(BuySellItem instance : _sellItems)		{			if(world.findObject(instance.getItemObjectId()) == null				|| _seller.getInventory().getItemByObjectId(instance.getItemObjectId()) == null				|| instance.getItemAmount() <= 0)			{				return false;			}		}				return true;	}		private class BuySellItem	{		private Integer _objId;		private Integer _amount;				public BuySellItem(Integer oid, Integer count)		{			_objId = oid;			_amount = count;		}				public int getItemObjectId(){return _objId;}		public int getItemAmount(){return _amount;}	}}