Thread: 718 problem

Page 1 of 2 12 LastLast
Results 1 to 10 of 12
  1. #1 718 problem 
    Banned
    Join Date
    Feb 2009
    Age
    30
    Posts
    214
    Thanks given
    5
    Thanks received
    1
    Rep Power
    0
    I have a problem with my loyalty shop when you try to buy an item it doesn't work. I can't figure
    out what's wrong with it. Can someone please help?

    Spoiler for shop.java:
    Code:
    package com.rs.game.player.content;
    
    import java.util.concurrent.CopyOnWriteArrayList;
    
    import com.rs.cache.loaders.ItemDefinitions;
    import com.rs.game.item.Item;
    import com.rs.game.player.Player;
    import com.rs.utils.ItemExamines;
    import com.rs.utils.ItemSetsKeyGenerator;
    
    public class Shop {
    
    	private static final int MAIN_STOCK_ITEMS_KEY = ItemSetsKeyGenerator.generateKey();
    
    	private static final int MAX_SHOP_ITEMS = 40;
    	public static final int COINS = 995;
    
    	private String name;
    	private Item[] mainStock;
    	private int[] defaultQuantity;
    	private Item[] generalStock;
    	private int money;
    	private int amount;
    
    	private CopyOnWriteArrayList<Player> viewingPlayers;
    
    	public Shop(String name, int money, Item[] mainStock, boolean isGeneralStore) {
    		viewingPlayers = new CopyOnWriteArrayList<Player>();
    		this.name = name;
    		this.money = money;
    		this.mainStock = mainStock;
    		defaultQuantity = new int[mainStock.length];
    		for (int i = 0; i < defaultQuantity.length; i++) 
    			defaultQuantity[i] = mainStock[i].getAmount();
    		if (isGeneralStore && mainStock.length < MAX_SHOP_ITEMS)
    			generalStock = new Item[MAX_SHOP_ITEMS - mainStock.length];
    	}
    
    	public boolean isGeneralStore() {
    		return generalStock != null;
    	}
    	
    	public static int[][] loyaltyPrices = { { 10551, 5000 }, { 19335, 1000 },
    			{ 22971, 2500 }, { 20952, 2500 }, { 8839, 1000 },
    			{ 8840, 1000 }, { 8842, 500 }, { 11663, 1000 }, { 11664, 10000 },
    			{ 11665, 1000 }, { 18744, 1000 }, { 18745, 1000 },
    			{ 18746, 1000 }, { 15432, 2000 }, { 15433, 2000 }, { 15443, 1500 },
    			{ 15441, 1500 }, { 21472, 8000 }, { 21473, 10000 },
    			{ 21474, 10000 }, { 21475, 6000 }, { 21476, 6000 }, };
    
    				
    
    	public static int[][] dungPrices = { { 18349, 200000 }, { 18351, 200000 },
    			{ 18353, 200000 }, { 18355, 200000 }, { 18357, 200000 },
    			{ 18359, 150000 }, { 18361, 150000 }, { 18363, 150000 }, { 18335, 35000 }, };
    
    	public void addPlayer(final Player player) {
    		viewingPlayers.add(player);
    		player.getTemporaryAttributtes().put("Shop", this);
    		player.setCloseInterfacesEvent(new Runnable() {
    			@Override
    			public void run() {
    				viewingPlayers.remove(player);
    				player.getTemporaryAttributtes().remove("Shop");
    				player.getTemporaryAttributtes().remove("shop_buying");
    				player.getTemporaryAttributtes().remove("amount_shop");
    			}
    		});
    		player.getPackets().sendConfig(118, MAIN_STOCK_ITEMS_KEY);
    		player.getPackets().sendConfig(1496, -1);
    		player.getPackets().sendConfig(532, money);
    		player.getPackets().sendConfig(2565, 0);
    		sendStore(player);
    		player.getPackets().sendGlobalConfig(199, -1);
    		player.getInterfaceManager().sendInterface(1265);
    		for (int i = 0; i < MAX_SHOP_ITEMS; i++)
    			player.getPackets().sendGlobalConfig(946 + i, i < defaultQuantity.length ? defaultQuantity[i]: generalStock != null ? 0 : -1);// prices
    		player.getPackets().sendGlobalConfig(1241, 16750848);
    		player.getPackets().sendGlobalConfig(1242, 15439903);
    		player.getPackets().sendGlobalConfig(741, -1);
    		player.getPackets().sendGlobalConfig(743, -1);
    		player.getPackets().sendGlobalConfig(744, 0);
    		if (generalStock != null)
    			player.getPackets().sendHideIComponent(1265, 19, false);
    		player.getPackets().sendIComponentSettings(1265, 20, 0, getStoreSize() * 6, 1150);
    		player.getPackets().sendIComponentSettings(1265, 26, 0, getStoreSize() * 6, 82903066);
    		sendInventory(player);
    		player.getPackets().sendIComponentText(1265, 85, name);
    		player.getTemporaryAttributtes().put("shop_buying", true);
    		player.getTemporaryAttributtes().put("amount_shop", 1);
    	}
    
    	public void sendInventory(Player player) {
    		player.getInterfaceManager().sendInventoryInterface(1266);
    		player.getPackets().sendItems(93, player.getInventory().getItems());
    		player.getPackets().sendUnlockIComponentOptionSlots(1266, 0, 0, 27, 0,
    				1, 2, 3, 4, 5);
    		player.getPackets().sendInterSetItemsOptionsScript(1266, 0, 93, 4, 7,
    				"Value", "Sell 1", "Sell 5", "Sell 10", "Sell 50", "Examine");
    	}
    	//cid 67
    	
    	public void buy(Player player, int slotId, int quantity) {
    		if (slotId >= getStoreSize())
    			return;
    		Item item = slotId >= mainStock.length ? generalStock[slotId - mainStock.length] : mainStock[slotId];
    		if (item == null)
    			return;
    		/*if (quantity == 500 && player.getTemporaryAttributtes().get("last_shop_purchase") != null && (long) player.getTemporaryAttributtes().get("last_shop_purchase") > Utils.currentTimeMillis()) {
    			player.sendMessage("You can only buy 500x of an item every 10 seconds. Time remaining: " + TimeUnit.MILLISECONDS.toSeconds((long) player.getTemporaryAttributtes().get("last_shop_purchase") - Utils.currentTimeMillis()));
    			return;
    		}*/
    		if (item.getAmount() == 0) {
    			player.getPackets().sendGameMessage("There is no stock of that item at the moment.");
    			return;
    		}
    		int dq = slotId >= mainStock.length ? 0 : defaultQuantity[slotId];
    		int price = getBuyPrice(item, dq);
    		int amountCoins = player.getInventory().getItems().getNumberOf(money);
    		int maxQuantity = amountCoins / price;
    		int buyQ = item.getAmount() > quantity ? quantity : item.getAmount();
    		boolean enoughCoins = maxQuantity >= buyQ;
    		if (money != 995) {
    				for (int i11 = 0; i11 < loyaltyPrices.length; i11++) {
    					loyaltyShop = 1;
    				if (item.getId() == loyaltyPrices[i11][0]) {
    					if (player.getLoyaltyPoints() < loyaltyPrices[i11][1] * quantity) {
    					player.getPackets().sendGameMessage("You need " + loyaltyPrices[i11][1] + " Loyalty Points to buy this item!");
    					return;
    				} else
    					loyaltyShop = 1;
    					player.getPackets().sendGameMessage("You have bought a " + item.getDefinitions().getName() + " from the loyalty store.");
    					player.getInventory().addItem(loyaltyPrices[i11][0], 1);
    					player.setLoyaltyPoints(player.getLoyaltyPoints() - loyaltyPrices[i11][1]);
    					return;
    				
    				}
    					dungShop = 2;
    				if (item.getId() == dungPrices[i11][0]) {
    					if (player.getDungPoints() < dungPrices[i11][1] * quantity) {
    					player.getPackets().sendGameMessage("You need " + dungPrices[i11][1] + " Dungeoneering Points to buy this item!");
    					return;
    				} else
    					dungShop = 2;
    					player.getPackets().sendGameMessage("You have bought a " + item.getDefinitions().getName() + " from the dungeoneering store.");
    					player.getInventory().addItem(dungPrices[i11][0], 1);
    					player.setDungPoints(player.getDungPoints() - dungPrices[i11][1]);
    					return;
    				
    				}
    			}
    		}
    		if (!enoughCoins) {
    			player.getPackets().sendGameMessage("You don't have enough coins.");
    			buyQ = maxQuantity;
    		} else if (quantity > buyQ)
    			player.getPackets().sendGameMessage(
    					"The shop has run out of stock.");
    		if (item.getDefinitions().isStackable()) {
    			if (player.getInventory().getFreeSlots() < 1) {
    				player.getPackets().sendGameMessage(
    						"Not enough space in your inventory.");
    				return;
    			}
    		} else {
    			int freeSlots = player.getInventory().getFreeSlots();
    			if (buyQ > freeSlots) {
    				buyQ = freeSlots;
    				player.getPackets().sendGameMessage(
    						"Not enough space in your inventory.");
    			}
    		}
    		if (buyQ != 0) {
    			int totalPrice = price * buyQ;
    			player.getInventory().deleteItem(money, totalPrice);
    			player.getInventory().addItem(item.getId(), buyQ);
    			item.setAmount(item.getAmount() - buyQ);
    			if (item.getAmount() <= 0 && slotId >= mainStock.length)
    				generalStock[slotId - mainStock.length] = null;
    			refreshShop();
    			sendInventory(player);
    		
    		
    		}
    		//if (quantity == 500)
    			//player.getTemporaryAttributtes().put("last_shop_purchase", Utils.currentTimeMillis() + 10000);
    	}
    	
    	public void restoreItems() {
    		boolean needRefresh = false;
    		for (int i = 0; i < mainStock.length; i++) {
    			if (mainStock[i].getAmount() < defaultQuantity[i]) {
    				mainStock[i].setAmount(mainStock[i].getAmount() + 1);
    				needRefresh = true;
    			} else if (mainStock[i].getAmount() > defaultQuantity[i]) {
    				mainStock[i].setAmount(mainStock[i].getAmount() + -1);
    				needRefresh = true;
    			}
    		}
    		if (generalStock != null) {
    			for (int i = 0; i < generalStock.length; i++) {
    				Item item = generalStock[i];
    				if (item == null)
    					continue;
    				item.setAmount(item.getAmount() - 1);
    				if (item.getAmount() <= 0)
    					generalStock[i] = null;
    				needRefresh = true;
    			}
    		}
    		if (needRefresh)
    			refreshShop();
    	}
    
    	private boolean addItem(int itemId, int quantity) {
    		for (Item item : mainStock) {
    			if (item.getId() == itemId) {
    				item.setAmount(item.getAmount() + quantity);
    				refreshShop();
    				return true;
    			}
    		}
    		if (generalStock != null) {
    			for (Item item : generalStock) {
    				if (item == null)
    					continue;
    				if (item.getId() == itemId) {
    					item.setAmount(item.getAmount() + quantity);
    					refreshShop();
    					return true;
    				}
    			}
    			for (int i = 0; i < generalStock.length; i++) {
    				if (generalStock[i] == null) {
    					generalStock[i] = new Item(itemId, quantity);
    					refreshShop();
    					return true;
    				}
    			}
    		}
    		return false;
    	}
    
    	public void sell(Player player, int slotId, int quantity) {
    		if (player.getInventory().getItemsContainerSize() < slotId)
    			return;
    		Item item = player.getInventory().getItem(slotId);
    		if (item == null)
    			return;
    		int originalId = item.getId();
    		if (item.getDefinitions().isNoted())
    			item = new Item(item.getDefinitions().getCertId(), item.getAmount());
    		if (item.getDefinitions().isDestroyItem()
    				|| ItemConstants.getItemDefaultCharges(item.getId()) != -1
    				|| !ItemConstants.isTradeable(item) || item.getId() == money) {
    			player.getPackets().sendGameMessage("You can't sell this item.");
    			return;
    		}
    		int dq = getDefaultQuantity(item.getId());
    		if (dq == -1 && generalStock == null) {
    			player.getPackets().sendGameMessage(
    					"You can't sell this item to this shop.");
    			return;
    		}
    		int price = getSellPrice(item, dq);
    		int numberOff = player.getInventory().getItems()
    				.getNumberOf(originalId);
    		if (quantity > numberOff)
    			quantity = numberOff;
    		if (!addItem(item.getId(), quantity)) {
    			player.getPackets().sendGameMessage("Shop is currently full.");
    			return;
    		}
    		player.getInventory().deleteItem(originalId, quantity);
    		player.getInventory().addItem(money, price * quantity);
    	}
    	
    	public static int loyaltyShop = 0;
    	public static int dungShop = 0;
    	
    	public void sendValue(Player player, int slotId) {
    		if (player.getInventory().getItemsContainerSize() < slotId)
    			return;
    		Item item = player.getInventory().getItem(slotId);
    		if (item == null)
    			return;
    		if (item.getDefinitions().isNoted())
    			item = new Item(item.getDefinitions().getCertId(), item.getAmount());
    		if (item.getDefinitions().isNoted() || !ItemConstants.isTradeable(item)
    				|| item.getId() == money) {
    			player.getPackets().sendGameMessage("You can't sell this item.");
    			return;
    		}
    		int dq = getDefaultQuantity(item.getId());
    		if (dq == -1 && generalStock == null) {
    			player.getPackets().sendGameMessage(
    					"You can't sell this item to this shop.");
    			return;
    		}
    		int price = getSellPrice(item, dq);
    		if (money == 995)
    		player.getPackets().sendGameMessage(
    				item.getDefinitions().getName()
    				+ ": shop will buy for: "
    				+ price
    				+ " "
    				+ ItemDefinitions.getItemDefinitions(money).getName()
    				.toLowerCase()
    				+ ". Right-click the item to sell.");
    		
    	}
    
    	public int getDefaultQuantity(int itemId) {
    		for (int i = 0; i < mainStock.length; i++)
    			if (mainStock[i].getId() == itemId)
    				return defaultQuantity[i];
    		return -1;
    	}
    
    	public void sendInfo(Player player, int slotId, boolean isBuying) {
    		if (slotId >= getStoreSize())
    			return;
    		Item[] stock = isBuying ? mainStock : player.getInventory().getItems().getItems();
    		Item item = slotId >= stock.length ? generalStock[slotId - stock.length] : stock[slotId];
    		if (item == null)
    			return;
    		int dq = slotId >= mainStock.length ? 0 : defaultQuantity[slotId];
    		int price = getBuyPrice(item, dq);
    	    for (int i = 0; i < loyaltyPrices.length; i++) {
    			if (item.getId() == loyaltyPrices[i][0]) {
    				player.getPackets().sendGameMessage(
    						"" + item.getDefinitions().getName() + " costs "
    								+ loyaltyPrices[i][1] + " loyalty points.");
    				player.getPackets().sendConfig(2564, loyaltyPrices[i][1]);
    				return;
    			}
    	    }
    		for (int i1 = 0; i1 < dungPrices.length; i1++) {
    			if (item.getId() == dungPrices[i1][0]) {
    				player.getPackets().sendGameMessage(
    						"" + item.getDefinitions().getName() + " costs "
    								+ dungPrices[i1][1] + " dungeoneering points.");
    				player.getPackets().sendConfig(2564, dungPrices[i1][1]);
    				return;
    		
    			}
    		}
    		
    		player.getPackets().sendConfig(2564, price);
    		player.getPackets().sendGameMessage(item.getDefinitions().getName() + ": shop will " + (isBuying ? "sell" : "buy") +" for " + price + " " + ItemDefinitions.getItemDefinitions(money).getName().toLowerCase() + ".");
    	
    				
    	    }
    
    		
     public int getBuyPrice(Item item, int dq) {
    		switch (item.getId()) {
            case 10330:
            case 10332:
            case 10334:
            case 10338:
            case 10340:
            case 10342:
            case 10346:
            case 10348:
            case 10350:
            case 10352:
    		   	item.getDefinitions().setValue(650000000);
    			break;
    		
    
    		}
    		return item.getDefinitions().getValue();
    	}
    
        public int getSellPrice(Item item, int dq) {
    		switch (item.getId()) {
    			    case 249:
    		case 250:
    		case 251:
    		case 252:
    		case 253:
    		case 254:
    		case 255:
    		case 256:
    		case 257:
    		case 258:
    		case 259:
    		case 260:
    		case 261:
    		case 262:
    		case 263:
    		case 264:
    		case 265:
    		case 266:
    		case 267:
    		case 268:
            	case 269:
            	case 270:
    			item.getDefinitions().setValue(1);
    		    break;
    	   
            }
    		return item.getDefinitions().getValue();
    	}
    
    	public void sendExamine(Player player, int slotId) {
    		if (slotId >= getStoreSize())
    			return;
    		Item item = slotId >= mainStock.length ? generalStock[slotId
    		                                                      - mainStock.length] : mainStock[slotId];
    		if (item == null)
    			return;
    		player.getPackets().sendGameMessage(ItemExamines.getExamine(item));
    	}
    
    	public void refreshShop() {
    		for (Player player : viewingPlayers) {
    			sendStore(player);
    			player.getPackets().sendIComponentSettings(620, 25, 0,
    					getStoreSize() * 6, 1150);
    		}
    	}
    
    	public int getStoreSize() {
    		return mainStock.length
    				+ (generalStock != null ? generalStock.length : 0);
    	}
    
    	public void sendStore(Player player) {
    		Item[] stock = new Item[mainStock.length
    		                        + (generalStock != null ? generalStock.length : 0)];
    		System.arraycopy(mainStock, 0, stock, 0, mainStock.length);
    		if (generalStock != null)
    			System.arraycopy(generalStock, 0, stock, mainStock.length,
    					generalStock.length);
    		player.getPackets().sendItems(MAIN_STOCK_ITEMS_KEY, stock);
    	}
    
    	public void sendSellStore(Player player, Item[] inventory) {
    		Item[] stock = new Item[inventory.length + (generalStock != null ? generalStock.length : 0)];
    		System.arraycopy(inventory, 0, stock, 0, inventory.length);
    		if (generalStock != null)
    			System.arraycopy(generalStock, 0, stock, inventory.length, generalStock.length);
    		player.getPackets().sendItems(MAIN_STOCK_ITEMS_KEY, stock);
    	}
    
    	/**
    	 * Checks if the player is buying an item or selling it.
    	 * @param player The player
    	 * @param slotId The slot id
    	 * @param amount The amount
    	 */
    	public void handleShop(Player player, int slotId, int amount) {
    		boolean isBuying = player.getTemporaryAttributtes().get("shop_buying") != null;
    		if (isBuying)
    			buy(player, slotId, amount);
    		else
    			sell(player, slotId, amount);
    	}
    
    	public Item[] getMainStock() {
    		return this.mainStock;
    	}
    	
    	public int getAmount() {
    		return this.amount;
    	}
    
    	public void setAmount(Player player, int amount) {
    		this.amount = amount;
    		player.getPackets().sendIComponentText(1265, 67, String.valueOf(amount)); //just update it here
    	}
    }
    Reply With Quote  
     

  2. #2  
    Donator

    Josh''s Avatar
    Join Date
    Jul 2012
    Age
    26
    Posts
    2,036
    Thanks given
    1,119
    Thanks received
    520
    Rep Power
    192
    ??????????????????????????????? what are you trying to do?!?!

    add something like this
    Code:
    1 -2 true - loyalty Shop - {ids here}
    Reply With Quote  
     

  3. #3  
    Banned
    Join Date
    Feb 2009
    Age
    30
    Posts
    214
    Thanks given
    5
    Thanks received
    1
    Rep Power
    0
    I'm trying to make it so my loyalty shop you can buy items out of it.
    And it has nothing to do with the unpackedshops its all in the shop.java cuz i had it working before i added dung shop
    Reply With Quote  
     

  4. #4  
    Banned
    Join Date
    Nov 2012
    Posts
    165
    Thanks given
    56
    Thanks received
    23
    Rep Power
    0
    EDIT: Nvm I miss-read
    Reply With Quote  
     

  5. #5  
    Banned
    Join Date
    Feb 2009
    Age
    30
    Posts
    214
    Thanks given
    5
    Thanks received
    1
    Rep Power
    0
    Idk why but the dungeoneering shop works even though I added it after loyalty shop. The loyalty shop use to work fine until I added dungeoneering shop. I can't figure out what's wrong with it.
    Reply With Quote  
     

  6. #6  
    Registered Member
    Join Date
    Aug 2011
    Posts
    396
    Thanks given
    29
    Thanks received
    57
    Rep Power
    9
    check for extra spaces or a line without code on it. in the unpacked file
    Reply With Quote  
     

  7. #7  
    Banned
    Join Date
    Feb 2009
    Age
    30
    Posts
    214
    Thanks given
    5
    Thanks received
    1
    Rep Power
    0
    I got the dung and loyalty shop to work but now all the regular shops dont work....Any ideas on what it could be?

    Spoiler for Shop.java:
    Code:
    package com.rs.game.player.content;
    
    import java.util.concurrent.CopyOnWriteArrayList;
    
    import com.rs.cache.loaders.ItemDefinitions;
    import com.rs.game.item.Item;
    import com.rs.game.player.Player;
    import com.rs.utils.ItemExamines;
    import com.rs.utils.ItemSetsKeyGenerator;
    
    public class Shop {
    
    	private static final int MAIN_STOCK_ITEMS_KEY = ItemSetsKeyGenerator.generateKey();
    
    	private static final int MAX_SHOP_ITEMS = 40;
    	public static final int COINS = 995;
    
    	private String name;
    	private Item[] mainStock;
    	private int[] defaultQuantity;
    	private Item[] generalStock;
    	private int money;
    	private int amount;
    
    	private CopyOnWriteArrayList<Player> viewingPlayers;
    
    	public Shop(String name, int money, Item[] mainStock, boolean isGeneralStore) {
    		viewingPlayers = new CopyOnWriteArrayList<Player>();
    		this.name = name;
    		this.money = money;
    		this.mainStock = mainStock;
    		defaultQuantity = new int[mainStock.length];
    		for (int i = 0; i < defaultQuantity.length; i++) 
    			defaultQuantity[i] = mainStock[i].getAmount();
    		if (isGeneralStore && mainStock.length < MAX_SHOP_ITEMS)
    			generalStock = new Item[MAX_SHOP_ITEMS - mainStock.length];
    	}
    
    	public boolean isGeneralStore() {
    		return generalStock != null;
    	}
    	
    	public static int[][] loyaltyPrices = { { 10551, 5000 }, { 19335, 10000 },
    			{ 22971, 2500 }, { 20952, 2500 }, { 8839, 1000 },
    			{ 8840, 1000 }, { 8842, 500 }, { 11663, 1000 }, { 11664, 1000 },
    			{ 11665, 1000 }, { 18744, 1000 }, { 18745, 1000 },
    			{ 18746, 1000 }, { 15432, 2000 }, { 15433, 2000 }, { 15443, 1500 },
    			{ 15441, 1500 }, { 21472, 8000 }, { 21473, 10000 },
    			{ 21474, 10000 }, { 21475, 6000 }, { 21476, 6000 }, };
    
    				
    
    	public static int[][] dungPrices = { { 18349, 200000 }, { 18351, 200000 },
    			{ 18353, 200000 }, { 18355, 200000 }, { 18357, 200000 },
    			{ 18359, 150000 }, { 18361, 150000 }, { 18363, 150000 }, { 18335, 35000 }, };
    
    	public void addPlayer(final Player player) {
    		viewingPlayers.add(player);
    		player.getTemporaryAttributtes().put("Shop", this);
    		player.setCloseInterfacesEvent(new Runnable() {
    			@Override
    			public void run() {
    				viewingPlayers.remove(player);
    				player.getTemporaryAttributtes().remove("Shop");
    				player.getTemporaryAttributtes().remove("shop_buying");
    				player.getTemporaryAttributtes().remove("amount_shop");
    			}
    		});
    		player.getPackets().sendConfig(118, MAIN_STOCK_ITEMS_KEY);
    		player.getPackets().sendConfig(1496, -1);
    		player.getPackets().sendConfig(532, money);
    		player.getPackets().sendConfig(2565, 0);
    		sendStore(player);
    		player.getPackets().sendGlobalConfig(199, -1);
    		player.getInterfaceManager().sendInterface(1265);
    		for (int i = 0; i < MAX_SHOP_ITEMS; i++)
    			player.getPackets().sendGlobalConfig(946 + i, i < defaultQuantity.length ? defaultQuantity[i]: generalStock != null ? 0 : -1);// prices
    		player.getPackets().sendGlobalConfig(1241, 16750848);
    		player.getPackets().sendGlobalConfig(1242, 15439903);
    		player.getPackets().sendGlobalConfig(741, -1);
    		player.getPackets().sendGlobalConfig(743, -1);
    		player.getPackets().sendGlobalConfig(744, 0);
    		if (generalStock != null)
    			player.getPackets().sendHideIComponent(1265, 19, false);
    		player.getPackets().sendIComponentSettings(1265, 20, 0, getStoreSize() * 6, 1150);
    		player.getPackets().sendIComponentSettings(1265, 26, 0, getStoreSize() * 6, 82903066);
    		sendInventory(player);
    		player.getPackets().sendIComponentText(1265, 85, name);
    		player.getTemporaryAttributtes().put("shop_buying", true);
    		player.getTemporaryAttributtes().put("amount_shop", 1);
    	}
    
    	public void sendInventory(Player player) {
    		player.getInterfaceManager().sendInventoryInterface(1266);
    		player.getPackets().sendItems(93, player.getInventory().getItems());
    		player.getPackets().sendUnlockIComponentOptionSlots(1266, 0, 0, 27, 0,
    				1, 2, 3, 4, 5);
    		player.getPackets().sendInterSetItemsOptionsScript(1266, 0, 93, 4, 7,
    				"Value", "Sell 1", "Sell 5", "Sell 10", "Sell 50", "Examine");
    	}
    	//cid 67
    	
    	public void buy(Player player, int slotId, int quantity) {
    		if (slotId >= getStoreSize())
    			return;
    		Item item = slotId >= mainStock.length ? generalStock[slotId - mainStock.length] : mainStock[slotId];
    		if (item == null)
    			return;
    		/*if (quantity == 500 && player.getTemporaryAttributtes().get("last_shop_purchase") != null && (long) player.getTemporaryAttributtes().get("last_shop_purchase") > Utils.currentTimeMillis()) {
    			player.sendMessage("You can only buy 500x of an item every 10 seconds. Time remaining: " + TimeUnit.MILLISECONDS.toSeconds((long) player.getTemporaryAttributtes().get("last_shop_purchase") - Utils.currentTimeMillis()));
    			return;
    		}*/
    		if (item.getAmount() == 0) {
    			player.getPackets().sendGameMessage("There is no stock of that item at the moment.");
    			return;
    		}
    		int dq = slotId >= mainStock.length ? 0 : defaultQuantity[slotId];
    		int price = getBuyPrice(item, dq);
    		int amountCoins = player.getInventory().getItems().getNumberOf(money);
    		int maxQuantity = amountCoins / price;
    		int buyQ = item.getAmount() > quantity ? quantity : item.getAmount();
    		boolean enoughCoins = maxQuantity >= buyQ;
    		if (money != 995) {
    				for (int i11 = 0; i11 < loyaltyPrices.length; i11++) {
    					loyaltyShop = 1;
    				if (item.getId() == loyaltyPrices[i11][0]) {
    					if (player.getLoyaltyPoints() < loyaltyPrices[i11][1] * quantity) {
    					player.getPackets().sendGameMessage("You need " + loyaltyPrices[i11][1] + " Loyalty Points to buy this item!");
    					return;
    				} else
    					loyaltyShop = 1;
    					player.getPackets().sendGameMessage("You have bought a " + item.getDefinitions().getName() + " from the loyalty store.");
    					player.getInventory().addItem(loyaltyPrices[i11][0], 1);
    					player.setLoyaltyPoints(player.getLoyaltyPoints() - loyaltyPrices[i11][1]);
    					return;
    				
    				}
    					for (int i111 = 0; i111 < dungPrices.length; i111++) {
    					dungShop = 2;
    				if (item.getId() == dungPrices[i111][0]) {
    					if (player.getDungPoints() < dungPrices[i111][1] * quantity) {
    					player.getPackets().sendGameMessage("You need " + dungPrices[i111][1] + " Dungeoneering Points to buy this item!");
    					return;
    				} else
    					dungShop = 2;
    					player.getPackets().sendGameMessage("You have bought a " + item.getDefinitions().getName() + " from the dungeoneering store.");
    					player.getInventory().addItem(dungPrices[i111][0], 1);
    					player.setDungPoints(player.getDungPoints() - dungPrices[i111][1]);
    					return;
    						}
    					}
    				}
    				
    		if (!enoughCoins) {
    			player.getPackets().sendGameMessage("You don't have enough coins.");
    			buyQ = maxQuantity;
    		} else if (quantity > buyQ)
    			player.getPackets().sendGameMessage(
    					"The shop has run out of stock.");
    		if (item.getDefinitions().isStackable()) {
    			if (player.getInventory().getFreeSlots() < 1) {
    				player.getPackets().sendGameMessage(
    						"Not enough space in your inventory.");
    				return;
    			}
    		} else {
    			int freeSlots = player.getInventory().getFreeSlots();
    			if (buyQ > freeSlots) {
    				buyQ = freeSlots;
    				player.getPackets().sendGameMessage(
    						"Not enough space in your inventory.");
    			}
    		}
    		if (buyQ != 0) {
    			int totalPrice = price * buyQ;
    			player.getInventory().deleteItem(money, totalPrice);
    			player.getInventory().addItem(item.getId(), buyQ);
    			item.setAmount(item.getAmount() - buyQ);
    			if (item.getAmount() <= 0 && slotId >= mainStock.length)
    				generalStock[slotId - mainStock.length] = null;
    			refreshShop();
    			sendInventory(player);
    					}
    				}
    			}	
    	
    	public void restoreItems() {
    		boolean needRefresh = false;
    		for (int i = 0; i < mainStock.length; i++) {
    			if (mainStock[i].getAmount() < defaultQuantity[i]) {
    				mainStock[i].setAmount(mainStock[i].getAmount() + 1);
    				needRefresh = true;
    			} else if (mainStock[i].getAmount() > defaultQuantity[i]) {
    				mainStock[i].setAmount(mainStock[i].getAmount() + -1);
    				needRefresh = true;
    			}
    		}
    		if (generalStock != null) {
    			for (int i = 0; i < generalStock.length; i++) {
    				Item item = generalStock[i];
    				if (item == null)
    					continue;
    				item.setAmount(item.getAmount() - 1);
    				if (item.getAmount() <= 0)
    					generalStock[i] = null;
    				needRefresh = true;
    			}
    		}
    		if (needRefresh)
    			refreshShop();
    	}
    
    	private boolean addItem(int itemId, int quantity) {
    		for (Item item : mainStock) {
    			if (item.getId() == itemId) {
    				item.setAmount(item.getAmount() + quantity);
    				refreshShop();
    				return true;
    			}
    		}
    		if (generalStock != null) {
    			for (Item item : generalStock) {
    				if (item == null)
    					continue;
    				if (item.getId() == itemId) {
    					item.setAmount(item.getAmount() + quantity);
    					refreshShop();
    					return true;
    				}
    			}
    			for (int i = 0; i < generalStock.length; i++) {
    				if (generalStock[i] == null) {
    					generalStock[i] = new Item(itemId, quantity);
    					refreshShop();
    					return true;
    				}
    			}
    		}
    		return false;
    	}
    
    	public void sell(Player player, int slotId, int quantity) {
    		if (player.getInventory().getItemsContainerSize() < slotId)
    			return;
    		Item item = player.getInventory().getItem(slotId);
    		if (item == null)
    			return;
    		int originalId = item.getId();
    		if (item.getDefinitions().isNoted())
    			item = new Item(item.getDefinitions().getCertId(), item.getAmount());
    		if (item.getDefinitions().isDestroyItem()
    				|| ItemConstants.getItemDefaultCharges(item.getId()) != -1
    				|| !ItemConstants.isTradeable(item) || item.getId() == money) {
    			player.getPackets().sendGameMessage("You can't sell this item.");
    			return;
    		}
    		int dq = getDefaultQuantity(item.getId());
    		if (dq == -1 && generalStock == null) {
    			player.getPackets().sendGameMessage(
    					"You can't sell this item to this shop.");
    			return;
    		}
    		int price = getSellPrice(item, dq);
    		int numberOff = player.getInventory().getItems()
    				.getNumberOf(originalId);
    		if (quantity > numberOff)
    			quantity = numberOff;
    		if (!addItem(item.getId(), quantity)) {
    			player.getPackets().sendGameMessage("Shop is currently full.");
    			return;
    		}
    		player.getInventory().deleteItem(originalId, quantity);
    		player.getInventory().addItem(money, price * quantity);
    	}
    	
    	public static int loyaltyShop = 0;
    	public static int dungShop = 0;
    	
    	public void sendValue(Player player, int slotId) {
    		if (player.getInventory().getItemsContainerSize() < slotId)
    			return;
    		Item item = player.getInventory().getItem(slotId);
    		if (item == null)
    			return;
    		if (item.getDefinitions().isNoted())
    			item = new Item(item.getDefinitions().getCertId(), item.getAmount());
    		if (item.getDefinitions().isNoted() || !ItemConstants.isTradeable(item)
    				|| item.getId() == money) {
    			player.getPackets().sendGameMessage("You can't sell this item.");
    			return;
    		}
    		int dq = getDefaultQuantity(item.getId());
    		if (dq == -1 && generalStock == null) {
    			player.getPackets().sendGameMessage(
    					"You can't sell this item to this shop.");
    			return;
    		}
    		int price = getSellPrice(item, dq);
    		if (money == 995)
    		player.getPackets().sendGameMessage(
    				item.getDefinitions().getName()
    				+ ": shop will buy for: "
    				+ price
    				+ " "
    				+ ItemDefinitions.getItemDefinitions(money).getName()
    				.toLowerCase()
    				+ ". Right-click the item to sell.");
    		
    	}
    
    	public int getDefaultQuantity(int itemId) {
    		for (int i = 0; i < mainStock.length; i++)
    			if (mainStock[i].getId() == itemId)
    				return defaultQuantity[i];
    		return -1;
    	}
    
    	public void sendInfo(Player player, int slotId, boolean isBuying) {
    		if (slotId >= getStoreSize())
    			return;
    		Item[] stock = isBuying ? mainStock : player.getInventory().getItems().getItems();
    		Item item = slotId >= stock.length ? generalStock[slotId - stock.length] : stock[slotId];
    		if (item == null)
    			return;
    		int dq = slotId >= mainStock.length ? 0 : defaultQuantity[slotId];
    		int price = getBuyPrice(item, dq);
    	    for (int i = 0; i < loyaltyPrices.length; i++) {
    			if (item.getId() == loyaltyPrices[i][0]) {
    				player.getPackets().sendGameMessage(
    						"" + item.getDefinitions().getName() + " costs "
    								+ loyaltyPrices[i][1] + " loyalty points.");
    				player.getPackets().sendConfig(2564, loyaltyPrices[i][1]);
    				return;
    			}
    	    }
    		for (int i1 = 0; i1 < dungPrices.length; i1++) {
    			if (item.getId() == dungPrices[i1][0]) {
    				player.getPackets().sendGameMessage(
    						"" + item.getDefinitions().getName() + " costs "
    								+ dungPrices[i1][1] + " dungeoneering points.");
    				player.getPackets().sendConfig(2564, dungPrices[i1][1]);
    				return;
    		
    			}
    		}
    		
    		player.getPackets().sendConfig(2564, price);
    		player.getPackets().sendGameMessage(item.getDefinitions().getName() + ": shop will " + (isBuying ? "sell" : "buy") +" for " + price + " " + ItemDefinitions.getItemDefinitions(money).getName().toLowerCase() + ".");
    	
    				
    	    }
    
    		
     public int getBuyPrice(Item item, int dq) {
    		switch (item.getId()) {
            case 10330:
            case 10332:
            case 10334:
            case 10338:
            case 10340:
            case 10342:
            case 10346:
            case 10348:
            case 10350:
            case 10352:
    		   	item.getDefinitions().setValue(650000000);
    			break;
    		   
    		case 24329:
    		case 24330:
    		case 24331:
    		case 24332:
    		case 24333:
    		case 19748:
    		case 19757:
    		case 23030:
    		case 21512:
    		   	item.getDefinitions().setValue(100000);
    			break;
    
    		}
    		return item.getDefinitions().getValue();
    	}
    
        public int getSellPrice(Item item, int dq) {
    		switch (item.getId()) {
    			    case 249:
    		case 250:
    		case 251:
    		case 252:
    		case 253:
    		case 254:
    		case 255:
    		case 256:
    		case 257:
    		case 258:
    		case 259:
    		case 260:
    		case 261:
    		case 262:
    		case 263:
    		case 264:
    		case 265:
    		case 266:
    		case 267:
    		case 268:
            	case 269:
            	case 270:
    			item.getDefinitions().setValue(1);
    		    break;
    	   
            }
    		return item.getDefinitions().getValue();
    	}
    
    	public void sendExamine(Player player, int slotId) {
    		if (slotId >= getStoreSize())
    			return;
    		Item item = slotId >= mainStock.length ? generalStock[slotId
    		                                                      - mainStock.length] : mainStock[slotId];
    		if (item == null)
    			return;
    		player.getPackets().sendGameMessage(ItemExamines.getExamine(item));
    	}
    
    	public void refreshShop() {
    		for (Player player : viewingPlayers) {
    			sendStore(player);
    			player.getPackets().sendIComponentSettings(620, 25, 0,
    					getStoreSize() * 6, 1150);
    		}
    	}
    
    	public int getStoreSize() {
    		return mainStock.length
    				+ (generalStock != null ? generalStock.length : 0);
    	}
    
    	public void sendStore(Player player) {
    		Item[] stock = new Item[mainStock.length
    		                        + (generalStock != null ? generalStock.length : 0)];
    		System.arraycopy(mainStock, 0, stock, 0, mainStock.length);
    		if (generalStock != null)
    			System.arraycopy(generalStock, 0, stock, mainStock.length,
    					generalStock.length);
    		player.getPackets().sendItems(MAIN_STOCK_ITEMS_KEY, stock);
    	}
    
    	public void sendSellStore(Player player, Item[] inventory) {
    		Item[] stock = new Item[inventory.length + (generalStock != null ? generalStock.length : 0)];
    		System.arraycopy(inventory, 0, stock, 0, inventory.length);
    		if (generalStock != null)
    			System.arraycopy(generalStock, 0, stock, inventory.length, generalStock.length);
    		player.getPackets().sendItems(MAIN_STOCK_ITEMS_KEY, stock);
    	}
    
    	/**
    	 * Checks if the player is buying an item or selling it.
    	 * @param player The player
    	 * @param slotId The slot id
    	 * @param amount The amount
    	 */
    	public void handleShop(Player player, int slotId, int amount) {
    		boolean isBuying = player.getTemporaryAttributtes().get("shop_buying") != null;
    		if (isBuying)
    			buy(player, slotId, amount);
    		else
    			sell(player, slotId, amount);
    	}
    
    	public Item[] getMainStock() {
    		return this.mainStock;
    	}
    	
    	public int getAmount() {
    		return this.amount;
    	}
    
    	public void setAmount(Player player, int amount) {
    		this.amount = amount;
    		player.getPackets().sendIComponentText(1265, 67, String.valueOf(amount)); //just update it here
    	}
    }
    Reply With Quote  
     

  8. #8  
    Banned
    Join Date
    Oct 2012
    Posts
    164
    Thanks given
    12
    Thanks received
    6
    Rep Power
    0
    replace ur shop.java with

    Code:
    package com.rs.game.player.content;
     
    import java.util.concurrent.CopyOnWriteArrayList;
     
    import com.rs.cache.loaders.ItemDefinitions;
    import com.rs.game.item.Item;
    import com.rs.game.player.Player;
    import com.rs.utils.ItemExamines;
    import com.rs.utils.ItemSetsKeyGenerator;
     
    public class Shop {
     
        private static final int MAIN_STOCK_ITEMS_KEY = ItemSetsKeyGenerator.generateKey();
     
        private static final int MAX_SHOP_ITEMS = 40;
        public static final int COINS = 995;
     
        private String name;
        private Item[] mainStock;
        private int[] defaultQuantity;
        private Item[] generalStock;
        private int money;
        private int amount;
     
        private CopyOnWriteArrayList<Player> viewingPlayers;
     
        public Shop(String name, int money, Item[] mainStock, boolean isGeneralStore) {
            viewingPlayers = new CopyOnWriteArrayList<Player>();
            this.name = name;
            this.money = money;
            this.mainStock = mainStock;
            defaultQuantity = new int[mainStock.length];
            for (int i = 0; i < defaultQuantity.length; i++)
                defaultQuantity[i] = mainStock[i].getAmount();
            if (isGeneralStore && mainStock.length < MAX_SHOP_ITEMS)
                generalStock = new Item[MAX_SHOP_ITEMS - mainStock.length];
        }
     
        public boolean isGeneralStore() {
            return generalStock != null;
        }
     
        public void addPlayer(final Player player) {
            viewingPlayers.add(player);
            player.getTemporaryAttributtes().put("Shop", this);
            player.setCloseInterfacesEvent(new Runnable() {
                @Override
                public void run() {
                    viewingPlayers.remove(player);
                    player.getTemporaryAttributtes().remove("Shop");
                    player.getTemporaryAttributtes().remove("shop_buying");
                    player.getTemporaryAttributtes().remove("amount_shop");
                }
            });
            player.getPackets().sendConfig(118, MAIN_STOCK_ITEMS_KEY);
            player.getPackets().sendConfig(1496, -1);
            player.getPackets().sendConfig(532, money);
            player.getPackets().sendConfig(2565, 0);
            sendStore(player);
            player.getPackets().sendGlobalConfig(199, -1);
            player.getInterfaceManager().sendInterface(1265);
            for (int i = 0; i < MAX_SHOP_ITEMS; i++)
                player.getPackets().sendGlobalConfig(946 + i, i < defaultQuantity.length ? defaultQuantity[i]: generalStock != null ? 0 : -1);// prices
            player.getPackets().sendGlobalConfig(1241, 16750848);
            player.getPackets().sendGlobalConfig(1242, 15439903);
            player.getPackets().sendGlobalConfig(741, -1);
            player.getPackets().sendGlobalConfig(743, -1);
            player.getPackets().sendGlobalConfig(744, 0);
            if (generalStock != null)
                player.getPackets().sendHideIComponent(1265, 19, false);
            player.getPackets().sendIComponentSettings(1265, 20, 0, getStoreSize() * 6, 1150);
            player.getPackets().sendIComponentSettings(1265, 26, 0, getStoreSize() * 6, 82903066);
            sendInventory(player);
            player.getPackets().sendIComponentText(1265, 85, name);
            player.getTemporaryAttributtes().put("shop_buying", true);
            player.getTemporaryAttributtes().put("amount_shop", 1);
        }
     
        public void sendInventory(Player player) {
            player.getInterfaceManager().sendInventoryInterface(1266);
            player.getPackets().sendItems(93, player.getInventory().getItems());
            player.getPackets().sendUnlockIComponentOptionSlots(1266, 0, 0, 27, 0,
                    1, 2, 3, 4, 5);
            player.getPackets().sendInterSetItemsOptionsScript(1266, 0, 93, 4, 7,
                    "Value", "Sell 1", "Sell 5", "Sell 10", "Sell 50", "Examine");
        }
        //cid 67
        public void buy(Player player, int slotId, int quantity) {
            if (slotId >= getStoreSize())
                return;
            Item item = slotId >= mainStock.length ? generalStock[slotId - mainStock.length] : mainStock[slotId];
            if (item == null)
                return;
            if (item.getAmount() == 0) {
                player.getPackets().sendGameMessage("There is no stock of that item at the moment.");
                return;
            }
            //int dq = slotId >= mainStock.length ? 0 : defaultQuantity[slotId]; not sure what is this
            int price = getBuyPrice(item);
            int amountCoins = player.getInventory().getItems().getNumberOf(money);
            int maxQuantity = amountCoins / price;
            int buyQ = item.getAmount() > quantity ? quantity : item.getAmount();
            boolean enoughCoins = maxQuantity >= buyQ;
            if (!enoughCoins) {
                player.getPackets().sendGameMessage("You don't have enough coins.");
                buyQ = maxQuantity;
            } else if (quantity > buyQ)
                player.getPackets().sendGameMessage(
                        "The shop has run out of stock.");
            if (item.getDefinitions().isStackable()) {
                if (player.getInventory().getFreeSlots() < 1) {
                    player.getPackets().sendGameMessage(
                            "Not enough space in your inventory.");
                    return;
                }
            } else {
                int freeSlots = player.getInventory().getFreeSlots();
                if (buyQ > freeSlots) {
                    buyQ = freeSlots;
                    player.getPackets().sendGameMessage(
                            "Not enough space in your inventory.");
                }
            }
            if (buyQ != 0) {
                int totalPrice = price * buyQ;
                player.getInventory().deleteItem(money, totalPrice);
                player.getInventory().addItem(item.getId(), buyQ);
                item.setAmount(item.getAmount() - buyQ);
                if (item.getAmount() <= 0 && slotId >= mainStock.length)
                    generalStock[slotId - mainStock.length] = null;
                refreshShop();
                sendInventory(player);
            }
        }
     
        public void restoreItems() {
            boolean needRefresh = false;
            for (int i = 0; i < mainStock.length; i++) {
                if (mainStock[i].getAmount() < defaultQuantity[i]) {
                    mainStock[i].setAmount(mainStock[i].getAmount() + 1);
                    needRefresh = true;
                } else if (mainStock[i].getAmount() > defaultQuantity[i]) {
                    mainStock[i].setAmount(mainStock[i].getAmount() + -1);
                    needRefresh = true;
                }
            }
            if (generalStock != null) {
                for (int i = 0; i < generalStock.length; i++) {
                    Item item = generalStock[i];
                    if (item == null)
                        continue;
                    item.setAmount(item.getAmount() - 1);
                    if (item.getAmount() <= 0)
                        generalStock[i] = null;
                    needRefresh = true;
                }
            }
            if (needRefresh)
                refreshShop();
        }
     
        private boolean addItem(int itemId, int quantity) {
            for (Item item : mainStock) {
                if (item.getId() == itemId) {
                    item.setAmount(item.getAmount() + quantity);
                    refreshShop();
                    return true;
                }
            }
            if (generalStock != null) {
                for (Item item : generalStock) {
                    if (item == null)
                        continue;
                    if (item.getId() == itemId) {
                        item.setAmount(item.getAmount() + quantity);
                        refreshShop();
                        return true;
                    }
                }
                for (int i = 0; i < generalStock.length; i++) {
                    if (generalStock[i] == null) {
                        generalStock[i] = new Item(itemId, quantity);
                        refreshShop();
                        return true;
                    }
                }
            }
            return false;
        }
     
        public void sell(Player player, int slotId, int quantity) {
            if (player.getInventory().getItemsContainerSize() < slotId)
                return;
            Item item = player.getInventory().getItem(slotId);
            if (item == null)
                return;
            int originalId = item.getId();
            if (item.getDefinitions().isNoted())
                item = new Item(item.getDefinitions().getCertId(), item.getAmount());
            if (item.getDefinitions().isDestroyItem()
                    || ItemConstants.getItemDefaultCharges(item.getId()) != -1
                    || !ItemConstants.isTradeable(item) || item.getId() == money) {
                player.getPackets().sendGameMessage("You can't sell this item.");
                return;
            }
            int dq = getDefaultQuantity(item.getId());
            if (dq == -1 && generalStock == null) {
                player.getPackets().sendGameMessage(
                        "You can't sell this item to this shop.");
                return;
            }
            int price = getSellPrice(item, dq);
            int numberOff = player.getInventory().getItems()
                    .getNumberOf(originalId);
            if (quantity > numberOff)
                quantity = numberOff;
            if (!addItem(item.getId(), quantity)) {
                player.getPackets().sendGameMessage("Shop is currently full.");
                return;
            }
            player.getInventory().deleteItem(originalId, quantity);
            player.getInventory().addItem(money, price * quantity);
        }
     
        public void sendValue(Player player, int slotId) {
            if (player.getInventory().getItemsContainerSize() < slotId)
                return;
            Item item = player.getInventory().getItem(slotId);
            if (item == null)
                return;
            if (item.getDefinitions().isNoted())
                item = new Item(item.getDefinitions().getCertId(), item.getAmount());
            if (item.getDefinitions().isNoted() || !ItemConstants.isTradeable(item)
                    || item.getId() == money) {
                player.getPackets().sendGameMessage("You can't sell this item.");
                return;
            }
            int dq = getDefaultQuantity(item.getId());
            if (dq == -1 && generalStock == null) {
                player.getPackets().sendGameMessage(
                        "You can't sell this item to this shop.");
                return;
            }
            int price = getSellPrice(item, dq);
            player.getPackets().sendGameMessage(
                    item.getDefinitions().getName()
                    + ": shop will buy for: "
                    + price
                    + " "
                    + ItemDefinitions.getItemDefinitions(money).getName()
                    .toLowerCase()
                    + ". Right-click the item to sell.");
        }
     
        public int getDefaultQuantity(int itemId) {
            for (int i = 0; i < mainStock.length; i++)
                if (mainStock[i].getId() == itemId)
                    return defaultQuantity[i];
            return -1;
        }
     
        public void sendInfo(Player player, int slotId, boolean isBuying) {
            if (slotId >= getStoreSize())
                return;
            Item[] stock = isBuying ? mainStock : player.getInventory().getItems().getItems();
            Item item = slotId >= stock.length ? generalStock[slotId - stock.length] : stock[slotId];
            if (item == null)
                return;
            int price = getBuyPrice(item);
            player.getPackets().sendGameMessage(item.getDefinitions().getName() + ": shop will " + (isBuying ? "sell" : "buy") +" for " + price + " " + ItemDefinitions.getItemDefinitions(money).getName().toLowerCase() + ".");
        }
     
    	public int getBuyPrice(Item item) {
    		int price = item.getDefinitions().getValue();
    		if (price == 0)
    			price = 1;
    		
    		 switch(item.getId()) {
    			case 10551:
    				price = 50000000;
    				break;
    			case 10548:
    				price = 50000000;
    				break;
    			case 22358:
    				price = 200000000;
    				break;
    			case 22359:
    				price = 200000000;
    				break;
    			case 22360:
    				price = 200000000;
    				break;
    			case 22361:
    				price = 200000000;
    				break;
    			case 22362:
    				price = 200000000;
    				break;
    			case 22363:
    				price = 200000000;
    				break;
    			case 22364:
    				price = 200000000;
    				break;
    			case 22365:
    				price = 200000000;
    				break;
    			case 15444:
    				price = 150000000;
    				break;
    			case 15443:
    				price = 200000000;
    				break;
    			case 15442:
    				price = 250000000;
    				break;
    			case 15441:
    				price = 300000000;
    				break;
    			case 18349:
    				price = 800000000;
    				break;
    			case 18353:
    				price = 750000000;
    				break;
    			case 18351:
    				price = 500000000;
    				break;
    			case 18357:
    				price = 350000000;
    				break;
    			case 18359:
    				price = 100000000;
    				break;
    			case 19784:
    				price = 1200000000;
    				break;
    			case 18355:
    				price = 250000000;
    				break;			
    			}
    			return price; // TODO formula
    	}
     
        public int getSellPrice(Item item, int dq) {
            return item.getDefinitions().getValue() / 2;
        }
     
        public void sendExamine(Player player, int slotId) {
            if (slotId >= getStoreSize())
                return;
            Item item = slotId >= mainStock.length ? generalStock[slotId
                                                                  - mainStock.length] : mainStock[slotId];
            if (item == null)
                return;
            player.getPackets().sendGameMessage(ItemExamines.getExamine(item));
        }
     
        public void refreshShop() {
            for (Player player : viewingPlayers) {
                sendStore(player);
                player.getPackets().sendIComponentSettings(620, 25, 0,
                        getStoreSize() * 6, 1150);
            }
        }
     
        public int getStoreSize() {
            return mainStock.length
                    + (generalStock != null ? generalStock.length : 0);
        }
     
        public void sendStore(Player player) {
            Item[] stock = new Item[mainStock.length
                                    + (generalStock != null ? generalStock.length : 0)];
            System.arraycopy(mainStock, 0, stock, 0, mainStock.length);
            if (generalStock != null)
                System.arraycopy(generalStock, 0, stock, mainStock.length,
                        generalStock.length);
            player.getPackets().sendItems(MAIN_STOCK_ITEMS_KEY, stock);
        }
     
        public void sendSellStore(Player player, Item[] inventory) {
            Item[] stock = new Item[inventory.length + (generalStock != null ? generalStock.length : 0)];
            System.arraycopy(inventory, 0, stock, 0, inventory.length);
            if (generalStock != null)
                System.arraycopy(generalStock, 0, stock, inventory.length, generalStock.length);
            player.getPackets().sendItems(MAIN_STOCK_ITEMS_KEY, stock);
        }
     
        /**
         * Checks if the player is buying an item or selling it.
         * @param player The player
         * @param slotId The slot id
         * @param amount The amount
         */
        public void handleShop(Player player, int slotId, int amount) {
            boolean isBuying = player.getTemporaryAttributtes().get("shop_buying") != null;
            if (isBuying)
                buy(player, slotId, amount);
            else
                sell(player, slotId, amount);
        }
     
        public Item[] getMainStock() {
            return this.mainStock;
        }
         
        public int getAmount() {
            return this.amount;
        }
     
        public void setAmount(Player player, int amount) {
            this.amount = amount;
            player.getPackets().sendIComponentText(1265, 67, String.valueOf(amount)); //just update it here
        }
    }
    and your objecthandler.java with

    Code:
    package com.rs.net.decoders.handlers;
    
    import java.util.HashMap;
    import java.util.TimerTask;
    
    import com.rs.Settings;
    import com.rs.cache.loaders.ItemDefinitions;
    import com.rs.content.exchange.ExchangeHandler;
    import com.rs.cores.CoresManager;
    import com.rs.game.WorldTile;
    import com.rs.game.item.Item;
    import com.rs.game.player.content.SquealOfFortune;
    import com.rs.game.minigames.Crucible;
    import com.rs.game.minigames.duel.DuelControler;
    import com.rs.game.minigames.soulwars.SoulWarsButtons;
    import com.rs.game.npc.familiar.Familiar;
    import com.rs.game.npc.familiar.Familiar.SpecialAttack;
    import com.rs.game.player.CombatDefinitions;
    import com.rs.game.player.EmotesManager;
    import com.rs.game.player.Equipment;
    import com.rs.game.player.Inventory;
    import com.rs.game.player.Player;
    import com.rs.game.player.Skills;
    import com.rs.game.player.actions.Construction;
    import com.rs.game.player.actions.FightPitsViewingOrb;
    import com.rs.game.player.actions.HomeTeleport;
    import com.rs.game.player.actions.Rest;
    import com.rs.game.player.actions.Smithing.ForgingInterface;
    import com.rs.game.player.actions.Summoning;
    import com.rs.game.player.content.AdventurersLog;
    import com.rs.game.player.content.ItemConstants;
    import com.rs.game.player.content.Magic;
    import com.rs.game.player.content.PlayerLook;
    import com.rs.game.player.content.Runecrafting;
    import com.rs.game.player.content.Shop;
    import com.rs.game.player.content.SkillCapeCustomizer;
    import com.rs.game.player.content.SkillsDialogue;
    import com.rs.game.player.dialogues.LevelUp;
    import com.rs.game.player.dialogues.Transportation;
    import com.rs.game.tasks.WorldTask;
    import com.rs.game.tasks.WorldTasksManager;
    import com.rs.io.InputStream;
    import com.rs.net.decoders.WorldPacketsDecoder;
    import com.rs.utils.ItemExamines;
    import com.rs.utils.Logger;
    import com.rs.utils.Utils;
    
    public class ButtonHandler {
    
    	public static void handleButtons(final Player player, InputStream stream,
    			int packetId) {
    		int interfaceHash = stream.readIntV2();
    		int interfaceId = interfaceHash >> 16;
    		if (Utils.getInterfaceDefinitionsSize() <= interfaceId) {
    			// hack, or server error or client error
    			// player.getSession().getChannel().close();
    			return;
    		}
    		if (player.isDead()
    				|| !player.getInterfaceManager().containsInterface(interfaceId))
    			return;
    		final int componentId = interfaceHash - (interfaceId << 16);
    		if (componentId != 65535
    				&& Utils.getInterfaceDefinitionsComponentsSize(interfaceId) <= componentId) {
    			// hack, or server error or client error
    			// player.getSession().getChannel().close();
    			return;
    		}
    		
    		final int slotId2 = stream.readUnsignedShort128();
    		final int slotId = stream.readUnsignedShortLE128();
    		if (!player.getControlerManager().processButtonClick(interfaceId,
    				componentId, slotId, packetId))
    			return;
    		// squeal
    		if (interfaceId == 1253) {
    	 		if (componentId == 93) {
    	 		SquealOfFortune.spin(player);
    		} else if (componentId == 7) {
    			player.getPackets().sendOpenURL("http://google.com/");
    		} else if (componentId == 239) {
    			SquealOfFortune.closeSOF(player);
    	 	} else if (componentId == 192) {
    	 		SquealOfFortune.claimItem(player);
    			 player.closeInterfaces();
    	 	} else if (componentId == 273){
    	 		SquealOfFortune.openSOF(player);
    		} else if (componentId == 258){
    			SquealOfFortune.claimItem(player);
    			SquealOfFortune.closeSOF(player);
    		} else if (componentId == 106)
    			SquealOfFortune.closeSOF(player);
    			}
    		
    		if (interfaceId == 1139) {
    			if (componentId == 18) {
    				SquealOfFortune.openSOF(player);
    			} else if (componentId == 23) {
    	 			player.getPackets().sendOpenURL("http://google.com/");
    	 			player.getPackets().sendGameMessage("Link is opening!");
    			}
    		}
    			
    
    		if (interfaceId == 1252) {
    	 		if (componentId == 3) {
    	 		SquealOfFortune.openSOF(player);
    	 		} else if (componentId == 5) {
    	 		player.closeInterfaces();
    			player.getPackets().sendGameMessage("The icon will appear the next time you log in");
    				}
    			}
    		if (interfaceId == 548 || interfaceId == 746) {
    			if ((interfaceId == 548 && componentId == 148)
    					|| (interfaceId == 746 && componentId == 199)) {
    				if (player.getInterfaceManager().containsScreenInter()
    						|| player.getInterfaceManager()
    						.containsInventoryInter()) {
    					// TODO cant open sound
    					player.getPackets()
    					.sendGameMessage(
    							"Please finish what you're doing before opening the world map.");
    					return;
    				}
    				// world map open
    				player.getPackets().sendWindowsPane(755, 0);
    				int posHash = player.getX() << 14 | player.getY();
    				player.getPackets().sendGlobalConfig(622, posHash); // map open
    				// center
    				// pos
    				player.getPackets().sendGlobalConfig(674, posHash); // player
    				// position
    			} else if ((interfaceId == 548 && componentId == 17)
    					|| (interfaceId == 746 && componentId == 54)) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getSkills().switchXPDisplay();
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getSkills().switchXPPopup();
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getSkills().setupXPCounter();
    			}else if ((interfaceId == 746 && componentId == 207) || (interfaceId == 548 && componentId == 159)) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET) {
    					if (player.getInterfaceManager().containsScreenInter()) {
    						player.getPackets()
    						.sendGameMessage(
    								"Please finish what you're doing before opening the price checker.");
    						return;
    					}
    					player.stopAll();
    					player.getPriceCheckManager().openPriceCheck();
    				}
    			}
    			if (ExchangeHandler.handleButtons(player, interfaceId, componentId)) {
    				return;
    			}
    		} else if (interfaceId == 107) {
    			ExchangeHandler.sendSellItem(player, slotId2, slotId, componentId);
    			return;
    		}
    		if (ExchangeHandler.handleButtons(player, interfaceId, componentId)) {
    			return;
    		
    		} else if (interfaceId == 34) {// notes interface
    			/*	switch(componentId) {
    			case 35:
    			case 37:
    			case 39:
    			case 41:
    				Note current = (Note) player.getTemporaryAttributtes().get("curNote");
    				current.setColour(componentId - (34 + (componentId == 35 ? 0 : componentId + 1))); 
    				player.getNotes().refresh();
    				player.getPackets().sendHideIComponent(34, 16, true);
    				break;
    			case 3:
    				player.getPackets().sendRunScript(109, new Object[] { "Please enter the note text." });
    				player.getTemporaryAttributtes().put("entering_note", Boolean.TRUE);
    				break;
    			case 9:
    				switch(packetId) {
    				case WorldPacketsDecoder.ACTION_BUTTON1_PACKET:
    					Note note = player.getNotes().getNotes().get(slotId);
    					if (player.getTemporaryAttributtes().get("curNote") == note) {
    						player.getTemporaryAttributtes().remove("curNote");
    						player.getPackets().sendConfig(1439, -1);
    						return;
    					} else {
    						player.getTemporaryAttributtes().put("curNote", note);
    						player.getPackets().sendConfig(1439, slotId);
    					}
    					break;
    				case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
    					player.getTemporaryAttributtes().put("curNote", player.getNotes().getNotes().get(slotId));
    					player.getPackets().sendRunScript(109, new Object[] { "Please edit the note text." });
    					player.getTemporaryAttributtes().put("editing_note", Boolean.TRUE);
    					player.getPackets().sendConfig(1439, slotId);
    					break;
    				case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
    					player.getTemporaryAttributtes().put("curNote", player.getNotes().getNotes().get(slotId));
    					player.getPackets().sendHideIComponent(34, 16, false);
    					player.getPackets().sendConfig(1439, slotId);
    					break;
    				}
    				break;
    			case 8:
    				Note note = (Note) player.getTemporaryAttributtes().get("curNote");
    				player.getNotes().remove(note);
    				break;
    			}*/
    			
    			/**
    			 * Money Pouch
    			 */
    		} else if (interfaceId == 746) {
    			   if (componentId == 207) {
    				   if (packetId == 14) {
    			    player.getPackets().sendRunScript(5557, 1);
    			    player.getPackets().sendRunScript(5560, player.getCoins(), "n");
    				 
    				   }	else		if (packetId == 67){
    						player.getTemporaryAttributtes().put("money_remove", Boolean.TRUE);
    						player.getPackets().sendRunScript(108,
    								new Object[] { "Enter Amount:" });
    					}
    			   }
    		} else if (interfaceId == 548) {
    			   if (componentId == 159) {
    				   if (packetId == 14) {
    			    player.getPackets().sendRunScript(5557, 1);
    			    player.getPackets().sendRunScript(5560, player.getCoins(), "n");
    				 
    				   }	else		if (packetId == 67){
    					   player.out("hi");
    						player.getTemporaryAttributtes().put("money_remove", Boolean.TRUE);
    						player.getPackets().sendRunScript(108,
    								new Object[] { "Enter Amount:" });
    					}
    			   }
    		} else if (interfaceId == 182) {
    			if (player.getInterfaceManager().containsInventoryInter())
    				return;
    			if (componentId == 6 || componentId == 13)
    				if (!player.hasFinished())
    					player.logout(componentId == 6);
    		} else if (interfaceId == 1165) {
    			//if (componentId == 22)
    				//Summoning.closeDreadnipInterface(player);
    		} else if (interfaceId == 880) {
    			if (componentId >= 7 && componentId <= 19)
    				Familiar.setLeftclickOption(player, (componentId - 7) / 2);
    			else if (componentId == 21)
    				Familiar.confirmLeftOption(player);
    			else if (componentId == 25)
    				Familiar.setLeftclickOption(player, 7);
    			
    			} else if (interfaceId == 1265) {
    				Shop shop = (Shop) player.getTemporaryAttributtes().get("Shop");
    				if (shop == null)
    					return;
    				Integer slot = (Integer) player.getTemporaryAttributtes().get("ShopSelectedSlot");
    				boolean isBuying = player.getTemporaryAttributtes().get("shop_buying") != null;
    				if (componentId == 20) {
    					player.getTemporaryAttributtes().put("ShopSelectedSlot", slotId);
    					if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    						shop.sendInfo(player, slotId, isBuying);
    					else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    						shop.buy(player, slotId, 1);
    					else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    						shop.buy(player, slotId, 5);
    					else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    						shop.buy(player, slotId, 10);
    					else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET)
    						shop.buy(player, slotId, 50);
    					else if (packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET)
    						shop.buy(player, slotId, 500);
    					else if (packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    						shop.sendExamine(player, slotId);
    				}
    			 
    			} else if (interfaceId == 751) {
    				if (componentId == 14) {
    					player.getInterfaceManager().sendInterface(594);
    			}
    			 
    
    			 
    			 
    			 } else if (interfaceId == 1266) {
    				if (componentId == 0) {
    			 
    					if (packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET)
    						player.getInventory().sendExamine(slotId);
    					else {
    						Shop shop = (Shop) player.getTemporaryAttributtes().get(
    								"Shop");
    						if (shop == null)
    							return;
    						if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    							shop.sendValue(player, slotId);
    						else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    							shop.sell(player, slotId, 1);
    						else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    							shop.sell(player, slotId, 5);
    						else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    							shop.sell(player, slotId, 10);
    						else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET)
    							shop.sell(player, slotId, 50);
    					}
    				}
    		} else if (interfaceId == 662) {
    			if (player.getFamiliar() == null) {
    				if (player.getPet() == null) {
    					return;
    				}
    				if (componentId == 49) 
    					player.getPet().call();
    				else if (componentId == 51) 
    					player.getDialogueManager().startDialogue("DismissD");
    				return;
    			}
    			if (componentId == 49)
    				player.getFamiliar().call();
    			else if (componentId == 51)
    				player.getDialogueManager().startDialogue("DismissD");
    			else if (componentId == 67)
    				player.getFamiliar().takeBob();
    			else if (componentId == 69)
    				player.getFamiliar().renewFamiliar();
    			else if (componentId == 74) {
    				if (player.getFamiliar().getSpecialAttack() == SpecialAttack.CLICK)
    					player.getFamiliar().setSpecial(true);
    				if (player.getFamiliar().hasSpecialOn())
    					player.getFamiliar().submitSpecial(player);
    			}
    		} else if (interfaceId == 747) {
    			if (componentId == 8) {
    				Familiar.selectLeftOption(player);
    			} else if (player.getPet() != null) {
    				if (componentId == 11 || componentId == 20) {
    					player.getPet().call();
    				} else if (componentId == 12 || componentId == 21) {
    					player.getDialogueManager().startDialogue("DismissD");
    				} else if (componentId == 10 || componentId == 19) {
    					player.getPet().sendFollowerDetails();
    				}
    			} else if (player.getFamiliar() != null) {
    				if (componentId == 11 || componentId == 20)
    					player.getFamiliar().call();
    				else if (componentId == 12 || componentId == 21)
    					player.getDialogueManager().startDialogue("DismissD");
    				else if (componentId == 13 || componentId == 22)
    					player.getFamiliar().takeBob();
    				else if (componentId == 14 || componentId == 23)
    					player.getFamiliar().renewFamiliar();
    				else if (componentId == 19 || componentId == 10)
    					player.getFamiliar().sendFollowerDetails();
    				else if (componentId == 18) {
    					if (player.getFamiliar().getSpecialAttack() == SpecialAttack.CLICK)
    						player.getFamiliar().setSpecial(true);
    					if (player.getFamiliar().hasSpecialOn())
    						player.getFamiliar().submitSpecial(player);
    				}
    			}
    		
    				 
    		}else if (interfaceId == 309) 
    			PlayerLook.handleHairdresserSalonButtons(player, componentId, slotId);
    		else if (interfaceId == 729) 
    			PlayerLook.handleThessaliasMakeOverButtons(player, componentId, slotId);
    		else if (interfaceId == 187) {
    			if (componentId == 1) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getMusicsManager().playAnotherMusic(slotId / 2);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getMusicsManager().sendHint(slotId / 2);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getMusicsManager().addToPlayList(slotId / 2);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getMusicsManager().removeFromPlayList(slotId / 2);
    			} else if (componentId == 4)
    				player.getMusicsManager().addPlayingMusicToPlayList();
    			else if (componentId == 10)
    				player.getMusicsManager().switchPlayListOn();
    			else if (componentId == 11)
    				player.getMusicsManager().clearPlayList();
    			else if (componentId == 13)
    				player.getMusicsManager().switchShuffleOn();
    		} else if (interfaceId == 275) {
    			if (componentId == 14) {
    				player.getPackets().sendOpenURL(Settings.WEBSITE_LINK);
    			}
    		} else if ((interfaceId == 590 && componentId == 8) || interfaceId == 464) {
    			player.getEmotesManager().useBookEmote(interfaceId == 464 ? componentId : EmotesManager.getId(slotId, packetId));
    		} else if (interfaceId == 192) {
    			if (componentId == 2)
    				player.getCombatDefinitions().switchDefensiveCasting();
    			else if (componentId == 7)
    				player.getCombatDefinitions().switchShowCombatSpells();
    			else if (componentId == 9)
    				player.getCombatDefinitions().switchShowTeleportSkillSpells();
    			else if (componentId == 11)
    				player.getCombatDefinitions().switchShowMiscallaneousSpells();
    			else if (componentId == 13)
    				player.getCombatDefinitions().switchShowSkillSpells();
    			else if (componentId >= 15 & componentId <= 17)
    				player.getCombatDefinitions()
    				.setSortSpellBook(componentId - 15);
    			else
    				Magic.processNormalSpell(player, componentId, packetId);
    		} else if (interfaceId == 334) {
    			if(componentId == 22)
    				player.closeInterfaces();
    			else if (componentId == 21)
    				player.getTrade().accept(false);
    		} else if (interfaceId == 335) {
    			if(componentId == 18)
    				player.getTrade().accept(true);
    			else if(componentId == 20) 
    				player.closeInterfaces();
    			else if(componentId == 32) {
    				if(packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getTrade().removeItem(slotId, 1);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getTrade().removeItem(slotId, 5);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getTrade().removeItem(slotId, 10);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getTrade().removeItem(slotId, Integer.MAX_VALUE);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					player.getTemporaryAttributtes().put("trade_item_X_Slot",
    							slotId);
    					player.getTemporaryAttributtes().put("trade_isRemove", Boolean.TRUE);
    					player.getPackets().sendRunScript(108,
    							new Object[] { "Enter Amount:" });
    				}else if(packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET)
    					player.getTrade().sendValue(slotId, false);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					player.getTrade().sendExamine(slotId, false);
    			}else if(componentId == 35) {
    				if(packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getTrade().sendValue(slotId, true);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					player.getTrade().sendExamine(slotId, true);
    			}
    	
    		} else if (interfaceId == 336) {
    			if(componentId == 0) {
    				if(packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getTrade().addItem(slotId, 1);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getTrade().addItem(slotId, 5);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getTrade().addItem(slotId, 10);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getTrade().addItem(slotId, Integer.MAX_VALUE);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					player.getTemporaryAttributtes().put("trade_item_X_Slot", slotId);
    					player.getTemporaryAttributtes().remove("trade_isRemove");
    					player.getPackets().sendRunScript(108,
    							new Object[] { "Enter Amount:" });
    				}else if(packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET)
    					player.getTrade().sendValue(slotId);
    				else if(packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					player.getInventory().sendExamine(slotId);
    			}
    		} else if (interfaceId == 300) {
    			ForgingInterface.handleIComponents(player, componentId);
    		} else if (interfaceId == 206) {
    			if (componentId == 15) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getPriceCheckManager().removeItem(slotId, 1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getPriceCheckManager().removeItem(slotId, 5);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getPriceCheckManager().removeItem(slotId, 10);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getPriceCheckManager().removeItem(slotId,
    							Integer.MAX_VALUE);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					player.getTemporaryAttributtes().put("pc_item_X_Slot",
    							slotId);
    					player.getTemporaryAttributtes().put("pc_isRemove",
    							Boolean.TRUE);
    					player.getPackets().sendRunScript(108,
    							new Object[] { "Enter Amount:" });
    				}
    			}
    		} else if (interfaceId == 672) {
    			if (componentId == 16) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					Summoning.createPouch(player, slotId2, 1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					Summoning.createPouch(player, slotId2, 5);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					Summoning.createPouch(player, slotId2, 10);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					Summoning.createPouch(player, slotId2, Integer.MAX_VALUE);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET)
    					Summoning.createPouch(player, slotId2, 28);// x
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON6_PACKET) {
    					player.getPackets().sendGameMessage(
    							"You currently need "
    									+ ItemDefinitions.getItemDefinitions(
    											slotId2)
    											.getCreateItemRequirements());
    				}
    			}
    		} else if (interfaceId == 207) {
    			if (componentId == 0) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getPriceCheckManager().addItem(slotId, 1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getPriceCheckManager().addItem(slotId, 5);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getPriceCheckManager().addItem(slotId, 10);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getPriceCheckManager().addItem(slotId,
    							Integer.MAX_VALUE);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					player.getTemporaryAttributtes().put("pc_item_X_Slot",
    							slotId);
    					player.getTemporaryAttributtes().remove("pc_isRemove");
    					player.getPackets().sendRunScript(108,
    							new Object[] { "Enter Amount:" });
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET)
    					player.getInventory().sendExamine(slotId);
    			}
    		} else if (interfaceId == 665) {
    			if (player.getFamiliar() == null
    					|| player.getFamiliar().getBob() == null)
    				return;
    			if (componentId == 0) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getFamiliar().getBob().addItem(slotId, 1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getFamiliar().getBob().addItem(slotId, 5);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getFamiliar().getBob().addItem(slotId, 10);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getFamiliar().getBob()
    					.addItem(slotId, Integer.MAX_VALUE);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					player.getTemporaryAttributtes().put("bob_item_X_Slot",
    							slotId);
    					player.getTemporaryAttributtes().remove("bob_isRemove");
    					player.getPackets().sendRunScript(108,
    							new Object[] { "Enter Amount:" });
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET)
    					player.getInventory().sendExamine(slotId);
    			}
    		} else if (interfaceId == 671) {
    			if (player.getFamiliar() == null
    					|| player.getFamiliar().getBob() == null)
    				return;
    			if (componentId == 27) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getFamiliar().getBob().removeItem(slotId, 1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getFamiliar().getBob().removeItem(slotId, 5);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getFamiliar().getBob().removeItem(slotId, 10);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getFamiliar().getBob()
    					.removeItem(slotId, Integer.MAX_VALUE);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					player.getTemporaryAttributtes().put("bob_item_X_Slot",
    							slotId);
    					player.getTemporaryAttributtes().put("bob_isRemove",
    							Boolean.TRUE);
    					player.getPackets().sendRunScript(108,
    							new Object[] { "Enter Amount:" });
    				}
    			} else if (componentId == 29)
    				player.getFamiliar().takeBob();
    		} else if (interfaceId == 916) {
    			SkillsDialogue.handleSetQuantityButtons(player, componentId);
    		} else if (interfaceId == 193) {
    			if (componentId == 5)
    				player.getCombatDefinitions().switchShowCombatSpells();
    			else if (componentId == 7)
    				player.getCombatDefinitions().switchShowTeleportSkillSpells();
    			else if (componentId >= 9 && componentId <= 11)
    				player.getCombatDefinitions().setSortSpellBook(componentId - 9);
    			else if (componentId == 18)
    				player.getCombatDefinitions().switchDefensiveCasting();
    			else
    				Magic.processAncientSpell(player, componentId, packetId);
    		} else if (interfaceId == 430) {
    			if (componentId == 5)
    				player.getCombatDefinitions().switchShowCombatSpells();
    			else if (componentId == 7)
    				player.getCombatDefinitions().switchShowTeleportSkillSpells();
    			else if (componentId == 9)
    				player.getCombatDefinitions().switchShowMiscallaneousSpells();
    			else if (componentId >= 11 & componentId <= 13)
    				player.getCombatDefinitions()
    				.setSortSpellBook(componentId - 11);
    			else if (componentId == 20)
    				player.getCombatDefinitions().switchDefensiveCasting();
    			else
    				Magic.processLunarSpell(player, componentId, packetId);
    		} else if (interfaceId == 261) {
    			if (player.getInterfaceManager().containsInventoryInter())
    				return;
    			if (componentId == 22) {
    				if (player.getInterfaceManager().containsScreenInter()) {
    					player.getPackets()
    					.sendGameMessage(
    							"Please close the interface you have open before setting your graphic options.");
    					return;
    				}
    				player.stopAll();
    				player.getInterfaceManager().sendInterface(742);
    			} else if (componentId == 12)
    				player.switchAllowChatEffects();
    			else if (componentId == 13) { //chat setup
    				player.getInterfaceManager().sendSettings(982);
    			} else if (componentId == 14)
    				player.switchMouseButtons();
    			else if (componentId == 24) //audio options
    				player.getInterfaceManager().sendSettings(429);
    			else if (componentId == 26)
    				AdventurersLog.open(player);
    		}else if (interfaceId == 429) {
    			if (componentId == 18)
    				player.getInterfaceManager().sendSettings();
    		} else if (interfaceId == 982) {
    			if (componentId == 5)
    				player.getInterfaceManager().sendSettings();
    			else if (componentId == 41)
    				player.setPrivateChatSetup(player.getPrivateChatSetup() == 0 ? 1
    						: 0);
    			else if (componentId >= 49 && componentId <= 66)
    				player.setPrivateChatSetup(componentId - 48);
    			else if (componentId >= 72 && componentId <= 91)
    				player.setFriendChatSetup(componentId - 72);
    		} else if (interfaceId == 271) {
    			WorldTasksManager.schedule(new WorldTask() {
    				@Override
    				public void run() {
    					if (componentId == 8 || componentId == 42)
    						player.getPrayer().switchPrayer(slotId);
    
    					else if (componentId == 43
    							&& player.getPrayer().isUsingQuickPrayer())
    						player.getPrayer().switchSettingQuickPrayer();
    				}
    			});
    		} else if (interfaceId == 320) {
    			player.stopAll();
    			int lvlupSkill = -1;
    			int skillMenu = -1;
    			switch (componentId) {
    			case 150: // Attack
    				skillMenu = 1;
    				if (player.getTemporaryAttributtes().remove("leveledUp[0]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 1);
    				} else {
    					lvlupSkill = 0;
    					player.getPackets().sendConfig(1230, 10);
    				}
    				break;
    			case 9: // Strength
    				skillMenu = 2;
    				if (player.getTemporaryAttributtes().remove("leveledUp[2]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 2);
    				} else {
    					lvlupSkill = 2;
    					player.getPackets().sendConfig(1230, 20);
    				}
    				break;
    			case 22: // Defence
    				skillMenu = 5;
    				if (player.getTemporaryAttributtes().remove("leveledUp[1]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 5);
    				} else {
    					lvlupSkill = 1;
    					player.getPackets().sendConfig(1230, 40);
    				}
    				break;
    			case 40: // Ranged
    				skillMenu = 3;
    				if (player.getTemporaryAttributtes().remove("leveledUp[4]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 3);
    				} else {
    					lvlupSkill = 4;
    					player.getPackets().sendConfig(1230, 30);
    				}
    				break;
    			case 58: // Prayer
    				if (player.getTemporaryAttributtes().remove("leveledUp[5]") != Boolean.TRUE) {
    					skillMenu = 7;
    					player.getPackets().sendConfig(965, 7);
    				} else {
    					lvlupSkill = 5;
    					player.getPackets().sendConfig(1230, 60);
    				}
    				break;
    			case 71: // Magic
    				if (player.getTemporaryAttributtes().remove("leveledUp[6]") != Boolean.TRUE) {
    					skillMenu = 4;
    					player.getPackets().sendConfig(965, 4);
    				} else {
    					lvlupSkill = 6;
    					player.getPackets().sendConfig(1230, 33);
    				}
    				break;
    			case 84: // Runecrafting
    				if (player.getTemporaryAttributtes().remove("leveledUp[20]") != Boolean.TRUE) {
    					skillMenu = 12;
    					player.getPackets().sendConfig(965, 12);
    				} else {
    					lvlupSkill = 20;
    					player.getPackets().sendConfig(1230, 100);
    				}
    				break;
    			case 102: // Construction
    				skillMenu = 22;
    				if (player.getTemporaryAttributtes().remove("leveledUp[21]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 22);
    				} else {
    					lvlupSkill = 21;
    					player.getPackets().sendConfig(1230, 698);
    				}
    				break;
    			case 145: // Hitpoints
    				skillMenu = 6;
    				if (player.getTemporaryAttributtes().remove("leveledUp[3]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 6);
    				} else {
    					lvlupSkill = 3;
    					player.getPackets().sendConfig(1230, 50);
    				}
    				break;
    			case 15: // Agility
    				skillMenu = 8;
    				if (player.getTemporaryAttributtes().remove("leveledUp[16]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 8);
    				} else {
    					lvlupSkill = 16;
    					player.getPackets().sendConfig(1230, 65);
    				}
    				break;
    			case 28: // Herblore
    				skillMenu = 9;
    				if (player.getTemporaryAttributtes().remove("leveledUp[15]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 9);
    				} else {
    					lvlupSkill = 15;
    					player.getPackets().sendConfig(1230, 75);
    				}
    				break;
    			case 46: // Thieving
    				skillMenu = 10;
    				if (player.getTemporaryAttributtes().remove("leveledUp[17]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 10);
    				} else {
    					lvlupSkill = 17;
    					player.getPackets().sendConfig(1230, 80);
    				}
    				break;
    			case 64: // Crafting
    				skillMenu = 11;
    				if (player.getTemporaryAttributtes().remove("leveledUp[12]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 11);
    				} else {
    					lvlupSkill = 12;
    					player.getPackets().sendConfig(1230, 90);
    				}
    				break;
    			case 77: // Fletching
    				skillMenu = 19;
    				if (player.getTemporaryAttributtes().remove("leveledUp[9]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 19);
    				} else {
    					lvlupSkill = 9;
    					player.getPackets().sendConfig(1230, 665);
    				}
    				break;
    			case 90: // Slayer
    				skillMenu = 20;
    				if (player.getTemporaryAttributtes().remove("leveledUp[18]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 20);
    				} else {
    					lvlupSkill = 18;
    					player.getPackets().sendConfig(1230, 673);
    				}
    				break;
    			case 108: // Hunter
    				skillMenu = 23;
    				if (player.getTemporaryAttributtes().remove("leveledUp[22]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 23);
    				} else {
    					lvlupSkill = 22;
    					player.getPackets().sendConfig(1230, 689);
    				}
    				break;
    			case 140: // Mining
    				skillMenu = 13;
    				if (player.getTemporaryAttributtes().remove("leveledUp[14]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 13);
    				} else {
    					lvlupSkill = 14;
    					player.getPackets().sendConfig(1230, 110);
    				}
    				break;
    			case 135: // Smithing
    				skillMenu = 14;
    				if (player.getTemporaryAttributtes().remove("leveledUp[13]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 14);
    				} else {
    					lvlupSkill = 13;
    					player.getPackets().sendConfig(1230, 115);
    				}
    				break;
    			case 34: // Fishing
    				skillMenu = 15;
    				if (player.getTemporaryAttributtes().remove("leveledUp[10]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 15);
    				} else {
    					lvlupSkill = 10;
    					player.getPackets().sendConfig(1230, 120);
    				}
    				break;
    			case 52: // Cooking
    				skillMenu = 16;
    				if (player.getTemporaryAttributtes().remove("leveledUp[7]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 16);
    				} else {
    					lvlupSkill = 7;
    					player.getPackets().sendConfig(1230, 641);
    				}
    				break;
    			case 130: // Firemaking
    				skillMenu = 17;
    				if (player.getTemporaryAttributtes().remove("leveledUp[11]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 17);
    				} else {
    					lvlupSkill = 11;
    					player.getPackets().sendConfig(1230, 649);
    				}
    				break;
    			case 125: // Woodcutting
    				skillMenu = 18;
    				if (player.getTemporaryAttributtes().remove("leveledUp[8]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 18);
    				} else {
    					lvlupSkill = 8;
    					player.getPackets().sendConfig(1230, 660);
    				}
    				break;
    			case 96: // Farming
    				skillMenu = 21;
    				if (player.getTemporaryAttributtes().remove("leveledUp[19]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 21);
    				} else {
    					lvlupSkill = 19;
    					player.getPackets().sendConfig(1230, 681);
    				}
    				break;
    			case 114: // Summoning
    				skillMenu = 24;
    				if (player.getTemporaryAttributtes().remove("leveledUp[23]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 24);
    				} else {
    					lvlupSkill = 23;
    					player.getPackets().sendConfig(1230, 705);
    				}
    				break;
    			case 120: // Dung
    				skillMenu = 25;
    				if (player.getTemporaryAttributtes().remove("leveledUp[24]") != Boolean.TRUE) {
    					player.getPackets().sendConfig(965, 25);
    				} else {
    					lvlupSkill = 24;
    					player.getPackets().sendConfig(1230, 705);
    				}
    				break;
    			}
    
    			/*	player.getInterfaceManager().sendInterface(
    					lvlupSkill != -1 ? 741 : 499);*/
    			player.getInterfaceManager().sendScreenInterface(317, 1218);
    			player.getPackets().sendInterface(false, 1218, 1, 1217); //seems to fix
    			if (lvlupSkill != -1)
    				LevelUp.switchFlash(player, lvlupSkill, false);
    			if (skillMenu != -1)
    				player.getTemporaryAttributtes().put("skillMenu", skillMenu);
    		} else if (interfaceId == 1218) {
    			if((componentId >= 33 && componentId <= 55) || componentId == 120 || componentId == 151 || componentId == 189)
    				player.getPackets().sendInterface(false, 1218, 1, 1217); //seems to fix
    		} else if (interfaceId == 499) {
    			int skillMenu = -1;
    			if (player.getTemporaryAttributtes().get("skillMenu") != null)
    				skillMenu = (Integer) player.getTemporaryAttributtes().get(
    						"skillMenu");
    			if(componentId >= 10 && componentId <= 25) 
    				player.getPackets().sendConfig(965, ((componentId - 10) * 1024) + skillMenu);
    			else if (componentId == 29) 
    				// close inter
    				player.stopAll();
    
    		} else if (interfaceId == 387) {
    			if (player.getInterfaceManager().containsInventoryInter())
    				return;
    			if (componentId == 6) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) {
    					int hatId = player.getEquipment().getHatId();
    					if(hatId == 24437 || hatId == 24439 || hatId == 24440 || hatId == 24441) {
    						player.getDialogueManager().startDialogue("FlamingSkull", player.getEquipment().getItem(Equipment.SLOT_HAT), -1);
    						return;
    					}
    				}else if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					ButtonHandler.sendRemove(player, Equipment.SLOT_HAT);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					player.getEquipment().sendExamine(Equipment.SLOT_HAT);
    			} else if (componentId == 9) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					int capeId = player.getEquipment().getCapeId();
    					if (capeId == 20769 || capeId == 20771)
    						SkillCapeCustomizer.startCustomizing(player, capeId);
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) {
    					int capeId = player.getEquipment().getCapeId();
    					if (capeId == 20767)
    						SkillCapeCustomizer.startCustomizing(player, capeId);
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					ButtonHandler.sendRemove(player, Equipment.SLOT_CAPE);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					player.getEquipment().sendExamine(Equipment.SLOT_CAPE);
    			} else if (componentId == 12) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) {
    					int amuletId = player.getEquipment().getAmuletId();
    					if (amuletId <= 1712 && amuletId >= 1706
    							|| amuletId >= 10354 && amuletId <= 10361) {
    						if (Magic.sendItemTeleportSpell(player, true,
    								Transportation.EMOTE, Transportation.GFX, 4,
    								new WorldTile(3087, 3496, 0))) {
    							Item amulet = player.getEquipment().getItem(
    									Equipment.SLOT_AMULET);
    							if (amulet != null) {
    								amulet.setId(amulet.getId() - 2);
    								player.getEquipment().refresh(
    										Equipment.SLOT_AMULET);
    							}
    						}
    					} else if (amuletId == 1704 || amuletId == 10352)
    						player.getPackets()
    						.sendGameMessage(
    								"The amulet has ran out of charges. You need to recharge it if you wish it use it once more.");
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET) {
    					int amuletId = player.getEquipment().getAmuletId();
    					if (amuletId <= 1712 && amuletId >= 1706
    							|| amuletId >= 10354 && amuletId <= 10361) {
    						if (Magic.sendItemTeleportSpell(player, true,
    								Transportation.EMOTE, Transportation.GFX, 4,
    								new WorldTile(2918, 3176, 0))) {
    							Item amulet = player.getEquipment().getItem(
    									Equipment.SLOT_AMULET);
    							if (amulet != null) {
    								amulet.setId(amulet.getId() - 2);
    								player.getEquipment().refresh(
    										Equipment.SLOT_AMULET);
    							}
    						}
    					}
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET) {
    					int amuletId = player.getEquipment().getAmuletId();
    					if (amuletId <= 1712 && amuletId >= 1706
    							|| amuletId >= 10354 && amuletId <= 10361) {
    						if (Magic.sendItemTeleportSpell(player, true,
    								Transportation.EMOTE, Transportation.GFX, 4,
    								new WorldTile(3105, 3251, 0))) {
    							Item amulet = player.getEquipment().getItem(
    									Equipment.SLOT_AMULET);
    							if (amulet != null) {
    								amulet.setId(amulet.getId() - 2);
    								player.getEquipment().refresh(
    										Equipment.SLOT_AMULET);
    							}
    						}
    					}
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					int amuletId = player.getEquipment().getAmuletId();
    					if (amuletId <= 1712 && amuletId >= 1706
    							|| amuletId >= 10354 && amuletId <= 10361) {
    						if (Magic.sendItemTeleportSpell(player, true,
    								Transportation.EMOTE, Transportation.GFX, 4,
    								new WorldTile(3293, 3163, 0))) {
    							Item amulet = player.getEquipment().getItem(
    									Equipment.SLOT_AMULET);
    							if (amulet != null) {
    								amulet.setId(amulet.getId() - 2);
    								player.getEquipment().refresh(
    										Equipment.SLOT_AMULET);
    							}
    						}
    					}
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					ButtonHandler.sendRemove(player, Equipment.SLOT_AMULET);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					player.getEquipment().sendExamine(Equipment.SLOT_AMULET);
    			} else if (componentId == 15) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) {
    					int weaponId = player.getEquipment().getWeaponId();
    					if(weaponId == 15484) 
    						player.getInterfaceManager().gazeOrbOfOculus();
    				}else if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					ButtonHandler.sendRemove(player, Equipment.SLOT_WEAPON);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					player.getEquipment().sendExamine(Equipment.SLOT_WEAPON);
    			} else if (componentId == 18)
    				ButtonHandler.sendRemove(player, Equipment.SLOT_CHEST);
    			else if (componentId == 21)
    				ButtonHandler.sendRemove(player, Equipment.SLOT_SHIELD);
    			else if (componentId == 24)
    				ButtonHandler.sendRemove(player, Equipment.SLOT_LEGS);
    			else if (componentId == 27)
    				ButtonHandler.sendRemove(player, Equipment.SLOT_HANDS);
    			else if (componentId == 30)
    				ButtonHandler.sendRemove(player, Equipment.SLOT_FEET);
    			else if (componentId == 33)
    				ButtonHandler.sendRemove(player, Equipment.SLOT_RING);
    			else if (componentId == 36)
    				ButtonHandler.sendRemove(player, Equipment.SLOT_ARROWS);
    			else if (componentId == 45) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET) {
    					ButtonHandler.sendRemove(player, Equipment.SLOT_AURA);
    					player.getAuraManager().removeAura();
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					player.getEquipment().sendExamine(Equipment.SLOT_AURA);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getAuraManager().activate();
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getAuraManager().sendAuraRemainingTime();
    			} else if (componentId == 40) {
    				player.stopAll();
    				player.getInterfaceManager().sendInterface(17);
    			} else if (componentId == 37) {
    				openEquipmentBonuses(player, false);
    			}
    
    		
    		} else if (interfaceId == 640) {
    			if (componentId == 18 || componentId == 22) {
    				player.getTemporaryAttributtes().put("WillDuelFriendly", true);
    				player.getPackets().sendConfig(283, 67108864);
    			} else if (componentId == 19 || componentId == 21) {
    				player.getTemporaryAttributtes().put("WillDuelFriendly", false);
    				player.getPackets().sendConfig(283, 134217728);
    			} else if (componentId == 20) {
    				DuelControler.challenge(player);
    			}
    		} else if (interfaceId == 650) {
    			if (componentId == 15) {
    				player.stopAll();
    				player.setNextWorldTile(new WorldTile(2974, 4384, player.getPlane()));
    				player.getControlerManager().startControler(
    						"CorpBeastControler");
    			} else if (componentId == 16)
    				player.closeInterfaces();
    		} else if (interfaceId == 667) {
    			if (componentId == 14) {
    				if (slotId >= 14)
    					return;
    				Item item = player.getEquipment().getItem(slotId);
    				if (item == null)
    					return;
    				if (packetId == 3)
    					player.getPackets().sendGameMessage(
    							ItemExamines.getExamine(item));
    				else if (packetId == 216) {
    					sendRemove(player, slotId);
    					ButtonHandler.refreshEquipBonuses(player);
    				}
    			} else if (componentId == 46 && player.getTemporaryAttributtes().remove("Banking") != null) {
    				player.getBank().openBank();
    			}
    		} else if (interfaceId == 670) {
    			if (componentId == 0) {
    				if (slotId >= player.getInventory().getItemsContainerSize())
    					return;
    				Item item = player.getInventory().getItem(slotId);
    				if (item == null)
    					return;
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET) {
    					if (sendWear(player, slotId, item.getId()))
    						ButtonHandler.refreshEquipBonuses(player);
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getInventory().sendExamine(slotId);
    			}
    		} else if (interfaceId == Inventory.INVENTORY_INTERFACE) { // inventory
    			if (componentId == 0) {
    				if (slotId > 27
    						|| player.getInterfaceManager()
    						.containsInventoryInter())
    					return;
    				Item item = player.getInventory().getItem(slotId);
    				if (item == null || item.getId() != slotId2)
    					return;
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					InventoryOptionsHandler.handleItemOption1(player, slotId,
    							slotId2, item);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					InventoryOptionsHandler.handleItemOption2(player, slotId,
    							slotId2, item);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					InventoryOptionsHandler.handleItemOption3(player, slotId,
    							slotId2, item);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					InventoryOptionsHandler.handleItemOption4(player, slotId,
    							slotId2, item);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET)
    					InventoryOptionsHandler.handleItemOption5(player, slotId,
    							slotId2, item);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON6_PACKET)
    					InventoryOptionsHandler.handleItemOption6(player, slotId,
    							slotId2, item);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON7_PACKET)
    					InventoryOptionsHandler.handleItemOption7(player, slotId,
    							slotId2, item);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					InventoryOptionsHandler.handleItemOption8(player, slotId,
    							slotId2, item);
    			}
    		} else if (interfaceId == 742) {
    			if (componentId == 46) // close
    				player.stopAll();
    		} else if (interfaceId == 743) {
    			if (componentId == 20) // close
    				player.stopAll();
    		} else if (interfaceId == 741) {
    			if (componentId == 9) // close
    				player.stopAll();
    		} else if (interfaceId == 749) {
    			if (componentId == 4) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET) // activate
    					player.getPrayer().switchQuickPrayers();
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) // switch
    					player.getPrayer().switchSettingQuickPrayer();
    			}
    		} else if (interfaceId == 750) {
    			if (componentId == 4) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET) {
    					player.toogleRun(player.isResting() ? false : true);
    					if (player.isResting())
    						player.stopAll();
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) {
    					if (player.isResting()) {
    						player.stopAll();
    						return;
    					}
    					long currentTime = Utils.currentTimeMillis();
    					if (player.getEmotesManager().getNextEmoteEnd() >= currentTime) {
    						player.getPackets().sendGameMessage(
    								"You can't rest while perfoming an emote.");
    						return;
    					}
    					if (player.getLockDelay() >= currentTime) {
    						player.getPackets().sendGameMessage(
    								"You can't rest while perfoming an action.");
    						return;
    					}
    					player.stopAll();
    					player.getActionManager().setAction(new Rest());
    				}
    			}
    		} else if (interfaceId == 11) {
    			if (componentId == 17) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getBank().depositItem(slotId, 1, false);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getBank().depositItem(slotId, 5, false);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getBank().depositItem(slotId, 10, false);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getBank().depositItem(slotId, Integer.MAX_VALUE,
    							false);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					player.getTemporaryAttributtes().put("bank_item_X_Slot",
    							slotId);
    					player.getTemporaryAttributtes().remove("bank_isWithdraw");
    					player.getPackets().sendRunScript(108,
    							new Object[] { "Enter Amount:" });
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET)
    					player.getInventory().sendExamine(slotId);
    			} else if (componentId == 18)
    				player.getBank().depositAllInventory(false);
    			else if (componentId == 20)
    				player.getBank().depositAllEquipment(false);
    		} else if (interfaceId == 762) {
    			if (componentId == 15)
    				player.getBank().switchInsertItems();
    			else if (componentId == 19)
    				player.getBank().switchWithdrawNotes();
    			else if (componentId == 33)
    				player.getBank().depositAllInventory(true);
    			else if (componentId == 37)
    				player.getBank().depositAllEquipment(true);
    			else if (componentId == 35)
    				player.getBank().emptyPouch(true);
    			else if (componentId == 46) {
    				player.closeInterfaces();
    				player.getInterfaceManager().sendInterface(767);
    				player.setCloseInterfacesEvent(new Runnable() {
    					@Override
    					public void run() {
    						player.getBank().openBank();
    					}
    				});
    			} else if (componentId >= 46 && componentId <= 64) {
    				int tabId = 9 - ((componentId - 46) / 2);
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getBank().setCurrentTab(tabId);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getBank().collapse(tabId);
    			} else if (componentId == 95) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getBank().withdrawItem(slotId, 1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getBank().withdrawItem(slotId, 5);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getBank().withdrawItem(slotId, 10);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getBank().withdrawLastAmount(slotId);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					player.getTemporaryAttributtes().put("bank_item_X_Slot",
    							slotId);
    					player.getTemporaryAttributtes().put("bank_isWithdraw",
    							Boolean.TRUE);
    					player.getPackets().sendRunScript(108,
    							new Object[] { "Enter Amount:" });
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET)
    					player.getBank().withdrawItem(slotId, Integer.MAX_VALUE);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON6_PACKET)
    					player.getBank().withdrawItemButOne(slotId);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					player.getBank().sendExamine(slotId);
    
    			} else if (componentId == 119) {
    				openEquipmentBonuses(player, true);
    			}
    		} else if (interfaceId == 763) {
    			if (componentId == 0) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
    					player.getBank().depositItem(slotId, 1, true);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getBank().depositItem(slotId, 5, true);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getBank().depositItem(slotId, 10, true);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getBank().depositLastAmount(slotId);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET) {
    					player.getTemporaryAttributtes().put("bank_item_X_Slot",
    							slotId);
    					player.getTemporaryAttributtes().remove("bank_isWithdraw");
    					player.getPackets().sendRunScript(108,
    							new Object[] { "Enter Amount:" });
    				} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET)
    					player.getBank().depositItem(slotId, Integer.MAX_VALUE,
    							true);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET)
    					player.getInventory().sendExamine(slotId);
    			}
    		} else if (interfaceId == 767) {
    			if (componentId == 10)
    				player.getBank().openBank();
    		} else if (interfaceId == 884) {
    			if (componentId == 4) {
    				int weaponId = player.getEquipment().getWeaponId();
    				if (player.hasInstantSpecial(weaponId)) {
    					player.performInstantSpecial(weaponId);
    					return;
    				}
    				submitSpecialRequest(player);
    			} else if (componentId >= 7 && componentId <= 10)
    				player.getCombatDefinitions().setAttackStyle(componentId - 7);
    			else if (componentId == 11)
    				player.getCombatDefinitions().switchAutoRelatie();
    		} else if (interfaceId == 755) {
    			if (componentId == 44)
    				player.getPackets().sendWindowsPane(
    						player.getInterfaceManager().hasRezizableScreen() ? 746
    								: 548, 2);
    			else if (componentId == 42) {
    				player.getHintIconsManager().removeAll();//TODO find hintIcon index
    				player.getPackets().sendConfig(1159, 1);
    			}
    		} else if (interfaceId == 20)
    			SkillCapeCustomizer.handleSkillCapeCustomizer(player, componentId);
    		else if (interfaceId == 1056) {
    			if (componentId == 173)
    				player.getInterfaceManager().sendInterface(917);
    		} else if (interfaceId == 751) {
    			if (componentId == 26) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getFriendsIgnores().setPrivateStatus(0);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getFriendsIgnores().setPrivateStatus(1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getFriendsIgnores().setPrivateStatus(2);
    			} else if (componentId == 32) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.setFilterGame(false);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.setFilterGame(true);
    			} else if (componentId == 29) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.setPublicStatus(0);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.setPublicStatus(1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.setPublicStatus(2);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET)
    					player.setPublicStatus(3);
    			}else if (componentId == 0) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.getFriendsIgnores().setFriendsChatStatus(0);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.getFriendsIgnores().setFriendsChatStatus(1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.getFriendsIgnores().setFriendsChatStatus(2);
    			} else if (componentId == 23) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.setClanStatus(0);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.setClanStatus(1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.setClanStatus(2);
    			} else if (componentId == 20) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.setTradeStatus(0);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.setTradeStatus(1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.setTradeStatus(2);
    			} else if (componentId == 17) {
    				if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET)
    					player.setAssistStatus(0);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
    					player.setAssistStatus(1);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET)
    					player.setAssistStatus(2);
    				else if (packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET) {
    					//ASSIST XP Earned/Time
    				}
    			}
    		}/* else if(interfaceId == 105) {
    			GrandExchange.handleButtons(player, componentId);
    		} */else if (interfaceId == 1163 || interfaceId == 1164
    				|| interfaceId == 1168 || interfaceId == 1170
    				|| interfaceId == 1173)
    			player.getDominionTower().handleButtons(interfaceId, componentId);
    		else if (interfaceId == 900)
    			PlayerLook.handleMageMakeOverButtons(player, componentId);
    		else if (interfaceId == 1028)
    			PlayerLook.handleCharacterCustomizingButtons(player, componentId);
    		else if (interfaceId == 1108 || interfaceId == 1109)
    			player.getFriendsIgnores().handleFriendChatButtons(interfaceId,
    					componentId, packetId);
    		else if (interfaceId == 1079)
    			player.closeInterfaces(); 
    		else if (interfaceId == 374) {
    			if(componentId >= 5 && componentId <= 9)
    				player.setNextWorldTile(new WorldTile(FightPitsViewingOrb.ORB_TELEPORTS[componentId-5]));
    			else if (componentId == 15)
    				player.stopAll();
    		}else if (interfaceId == 1092) {
    			player.stopAll();
    			WorldTile destTile = null;
    			switch(componentId) {
    			case 47:
    				destTile = HomeTeleport.LUMBRIDGE_LODE_STONE;
    				break;
    			case 42:
    				destTile = HomeTeleport.BURTHORPE_LODE_STONE;
    				break;
    			case 39:
    				destTile = HomeTeleport.LUNAR_ISLE_LODE_STONE;
    				break;
    			case 7:
    				destTile = HomeTeleport.BANDIT_CAMP_LODE_STONE;
    				break;	
    			case 50:
    				destTile = HomeTeleport.TAVERLY_LODE_STONE;
    				break;
    			case 40:
    				destTile = HomeTeleport.ALKARID_LODE_STONE;
    				break;
    			case 51:
    				destTile = HomeTeleport.VARROCK_LODE_STONE;
    				break;
    			case 45:
    				destTile = HomeTeleport.EDGEVILLE_LODE_STONE;
    				break;
    			case 46:
    				destTile = HomeTeleport.FALADOR_LODE_STONE;
    				break;
    			case 48:
    				destTile = HomeTeleport.PORT_SARIM_LODE_STONE;
    				break;
    			case 44:
    				destTile = HomeTeleport.DRAYNOR_VILLAGE_LODE_STONE;
    				break;
    			case 41:
    				destTile = HomeTeleport.ARDOUGNE_LODE_STONE;
    				break;
    			case 43:
    				destTile = HomeTeleport.CATHERBAY_LODE_STONE;
    				break;
    			case 52:
    				destTile = HomeTeleport.YANILLE_LODE_STONE;
    				break;
    			case 49:
    				destTile = HomeTeleport.SEERS_VILLAGE_LODE_STONE;
    				break;
    			}
    			if(destTile != null) 
    				player.getActionManager().setAction(new HomeTeleport(destTile));
    		}else if (interfaceId == 1214) 
    			player.getSkills().handleSetupXPCounter(componentId);
    		else if (interfaceId == 1292) {
    			if(componentId == 12) 
    				Crucible.enterArena(player);
    			else if (componentId == 13)
    				player.closeInterfaces();
    		}
    		if (Settings.DEBUG)
    			Logger.log("ButtonHandler", "InterfaceId " + interfaceId
    					+ ", componentId " + componentId + ", slotId " + slotId
    					+ ", slotId2 " + slotId2 + ", PacketId: " + packetId);
    	}
    
    	public static void sendRemove(Player player, int slotId) {
    		if (slotId >= 15)
    			return;
    		player.stopAll(false, false);
    		Item item = player.getEquipment().getItem(slotId);
    		if (item == null
    				|| !player.getInventory().addItem(item.getId(),
    						item.getAmount()))
    			return;
    		player.getEquipment().getItems().set(slotId, null);
    		player.getEquipment().refresh(slotId);
    		player.getAppearence().generateAppearenceData();
    		if (Runecrafting.isTiara(item.getId()))
    			player.getPackets().sendConfig(491, 0);
    		if (slotId == 3)
    			player.getCombatDefinitions().desecreaseSpecialAttack(0);
    		
    	}
    
    	public static boolean sendWear(Player player, int slotId, int itemId) {
    		if (player.hasFinished() || player.isDead())
    			return false;
    		player.stopAll(false, false);
    		Item item = player.getInventory().getItem(slotId);
    		String itemName = item.getDefinitions() == null ? "" : item
    				.getDefinitions().getName().toLowerCase();
    		if (item == null || item.getId() != itemId)
    			return false;
    		if (item.getDefinitions().isNoted()
    				|| !item.getDefinitions().isWearItem(player.getAppearence().isMale())) {
    			player.getPackets().sendGameMessage("You can't wear that.");
    			return true;
    		}
    		for (String strings : Settings.DONATOR_ITEMS) {
    			if (itemName.contains(strings) && !player.isDonator()) {
    				player.getPackets().sendGameMessage(
    						"You need to be a donator to equip " + itemName + ".");
    				return true;
    			}
    		}
    		for (String strings : Settings.EXTREME_DONATOR_ITEMS) {
    			if (itemName.contains(strings) && !player.isExtremeDonator()) {
    				player.getPackets().sendGameMessage(
    						"You need to be a extreme donator to equip " + itemName + ".");
    				return true;
    			}
    		}
    		for (String strings : Settings.EARNED_ITEMS) {
    			if (itemName.contains(strings) && player.getRights() <= 1) {
    				player.getPackets().sendGameMessage(
    						"You must earn " + itemName + ".");
    				return true;
    			}
    		}
    		for (String strings : Settings.VOTE_REQUIRED_ITEMS) {
    			if (itemName.toLowerCase().contains(strings) && !player.hasVoted()) {
    				player.getPackets().sendGameMessage("You need to vote to wear the prod item "+itemName+" for 24 hours, type ::vote to vote.");
    				return true;
    			}
    		}
    		int targetSlot = Equipment.getItemSlot(itemId);
    		if (targetSlot == -1) {
    			player.getPackets().sendGameMessage("You can't wear that.");
    			return true;
    		}
    		if(!ItemConstants.canWear(item, player))
    			return true;
    		boolean isTwoHandedWeapon = targetSlot == 3
    				&& Equipment.isTwoHandedWeapon(item);
    		if (isTwoHandedWeapon && !player.getInventory().hasFreeSlots()
    				&& player.getEquipment().hasShield()) {
    			player.getPackets().sendGameMessage(
    					"Not enough free space in your inventory.");
    			return true;
    		}
    		HashMap<Integer, Integer> requiriments = item.getDefinitions()
    				.getWearingSkillRequiriments();
    		boolean hasRequiriments = true;
    		if (requiriments != null) {
    			for (int skillId : requiriments.keySet()) {
    				if (skillId > 24 || skillId < 0)
    					continue;
    				int level = requiriments.get(skillId);
    				if (level < 0 || level > 120)
    					continue;
    				if (player.getSkills().getLevelForXp(skillId) < level) {
    					if (hasRequiriments) {
    						player.getPackets()
    						.sendGameMessage(
    								"You are not high enough level to use this item.");
    					}
    					hasRequiriments = false;
    					String name = Skills.SKILL_NAME[skillId].toLowerCase();
    					player.getPackets().sendGameMessage(
    							"You need to have a"
    									+ (name.startsWith("a") ? "n" : "") + " "
    									+ name + " level of " + level + ".");
    				}
    
    			}
    		}
    		if (!hasRequiriments)
    			return true;
    		if (!player.getControlerManager().canEquip(targetSlot, itemId))
    			return false;
    		player.stopAll(false, false);
    		player.getInventory().deleteItem(slotId, item);
    		if (targetSlot == 3) {
    			if (isTwoHandedWeapon && player.getEquipment().getItem(5) != null) {
    				if (!player.getInventory().addItem(
    						player.getEquipment().getItem(5).getId(),
    						player.getEquipment().getItem(5).getAmount())) {
    					player.getInventory().getItems().set(slotId, item);
    					player.getInventory().refresh(slotId);
    					return true;
    				}
    				player.getEquipment().getItems().set(5, null);
    			}
    		} else if (targetSlot == 5) {
    			if (player.getEquipment().getItem(3) != null
    					&& Equipment.isTwoHandedWeapon(player.getEquipment()
    							.getItem(3))) {
    				if (!player.getInventory().addItem(
    						player.getEquipment().getItem(3).getId(),
    						player.getEquipment().getItem(3).getAmount())) {
    					player.getInventory().getItems().set(slotId, item);
    					player.getInventory().refresh(slotId);
    					return true;
    				}
    				player.getEquipment().getItems().set(3, null);
    			}
    
    		}
    		if (player.getEquipment().getItem(targetSlot) != null
    				&& (itemId != player.getEquipment().getItem(targetSlot).getId() || !item
    				.getDefinitions().isStackable())) {
    			if (player.getInventory().getItems().get(slotId) == null) {
    				player.getInventory()
    				.getItems()
    				.set(slotId,
    						new Item(player.getEquipment()
    								.getItem(targetSlot).getId(), player
    								.getEquipment().getItem(targetSlot)
    								.getAmount()));
    				player.getInventory().refresh(slotId);
    			} else
    				player.getInventory().addItem(
    						new Item(player.getEquipment().getItem(targetSlot)
    								.getId(), player.getEquipment()
    								.getItem(targetSlot).getAmount()));
    			player.getEquipment().getItems().set(targetSlot, null);
    		}
    		if(targetSlot == Equipment.SLOT_AURA)
    			player.getAuraManager().removeAura();
    		int oldAmt = 0;
    		if (player.getEquipment().getItem(targetSlot) != null) {
    			oldAmt = player.getEquipment().getItem(targetSlot).getAmount();
    		}
    		Item item2 = new Item(itemId, oldAmt + item.getAmount());
    		player.getEquipment().getItems().set(targetSlot, item2);
    		player.getEquipment().refresh(targetSlot,
    				targetSlot == 3 ? 5 : targetSlot == 3 ? 0 : 3);
    		player.getAppearence().generateAppearenceData();
    		player.getPackets().sendSound(2240, 0, 1);
    		if (targetSlot == 3)
    			player.getCombatDefinitions().desecreaseSpecialAttack(0);
    		player.getCharges().wear(targetSlot);
    		return true;
    	}
    
    	public static boolean sendWear2(Player player, int slotId, int itemId) {
    		if (player.hasFinished() || player.isDead())
    			return false;
    		player.stopAll(false, false);
    		Item item = player.getInventory().getItem(slotId);
    		if (item == null || item.getId() != itemId)
    			return false;
    		if((itemId == 4565 || itemId == 4084) && player.getRights() != 2) {
    			player.getPackets().sendGameMessage("You've to be a administrator to wear this item.");
    			return true;
    		}
    		if (item.getDefinitions().isNoted()
    				|| !item.getDefinitions().isWearItem(player.getAppearence().isMale()) && itemId != 4084) {
    			player.getPackets().sendGameMessage("You can't wear that.");
    			return false;
    		}
    		String itemName = item.getDefinitions() == null ? "" : item
    				.getDefinitions().getName().toLowerCase();
    		for (String strings : Settings.DONATOR_ITEMS) {
    			if (itemName.contains(strings) && !player.isDonator()) {
    				player.getPackets().sendGameMessage(
    						"You need to be a donator to equip " + itemName + ".");
    				return false;
    			}
    		}
    		for (String strings : Settings.EXTREME_DONATOR_ITEMS) {
    			if (itemName.contains(strings) && !player.isExtremeDonator()) {
    				player.getPackets().sendGameMessage(
    						"You need to be a extreme donator to equip " + itemName + ".");
    				return true;
    			}
    		}
    		for (String strings : Settings.EARNED_ITEMS) {
    			if (itemName.contains(strings) && player.getRights() <= 1) {
    				player.getPackets().sendGameMessage(
    						"You must earn " + itemName + ".");
    				return true;
    			}
    		}
    		for (String strings : Settings.VOTE_REQUIRED_ITEMS) {
    			if (itemName.toLowerCase().contains(strings) && !player.hasVoted()) {
    				player.getPackets().sendGameMessage("You need to vote to wear the prod item "+itemName+" for 24 hours, type ::vote to vote.");
    				return true;
    			}
    		}
    		int targetSlot = Equipment.getItemSlot(itemId);
    		if(itemId == 4084)
    			targetSlot = 3;
    		if (targetSlot == -1) {
    			player.getPackets().sendGameMessage("You can't wear that.");
    			return false;
    		}
    		if(!ItemConstants.canWear(item, player))
    			return false;
    		boolean isTwoHandedWeapon = targetSlot == 3
    				&& Equipment.isTwoHandedWeapon(item);
    		if (isTwoHandedWeapon && !player.getInventory().hasFreeSlots()
    				&& player.getEquipment().hasShield()) {
    			player.getPackets().sendGameMessage(
    					"Not enough free space in your inventory.");
    			return false;
    		}
    		HashMap<Integer, Integer> requiriments = item.getDefinitions()
    				.getWearingSkillRequiriments();
    		boolean hasRequiriments = true;
    		if (requiriments != null) {
    			for (int skillId : requiriments.keySet()) {
    				if (skillId > 24 || skillId < 0)
    					continue;
    				int level = requiriments.get(skillId);
    				if (level < 0 || level > 120)
    					continue;
    				if (player.getSkills().getLevelForXp(skillId) < level) {
    					if (hasRequiriments)
    						player.getPackets()
    						.sendGameMessage(
    								"You are not high enough level to use this item.");
    					hasRequiriments = false;
    					String name = Skills.SKILL_NAME[skillId].toLowerCase();
    					player.getPackets().sendGameMessage(
    							"You need to have a"
    									+ (name.startsWith("a") ? "n" : "") + " "
    									+ name + " level of " + level + ".");
    				}
    
    			}
    		}
    		if (!hasRequiriments)
    			return false;
    		if (!player.getControlerManager().canEquip(targetSlot, itemId))
    			return false;
    		player.getInventory().getItems().remove(slotId, item);
    		if (targetSlot == 3) {
    			if (isTwoHandedWeapon && player.getEquipment().getItem(5) != null) {
    				if (!player.getInventory().getItems()
    						.add(player.getEquipment().getItem(5))) {
    					player.getInventory().getItems().set(slotId, item);
    					return false;
    				}
    				player.getEquipment().getItems().set(5, null);
    			}
    		} else if (targetSlot == 5) {
    			if (player.getEquipment().getItem(3) != null
    					&& Equipment.isTwoHandedWeapon(player.getEquipment()
    							.getItem(3))) {
    				if (!player.getInventory().getItems()
    						.add(player.getEquipment().getItem(3))) {
    					player.getInventory().getItems().set(slotId, item);
    					return false;
    				}
    				player.getEquipment().getItems().set(3, null);
    			}
    
    		}
    		if (player.getEquipment().getItem(targetSlot) != null
    				&& (itemId != player.getEquipment().getItem(targetSlot).getId() || !item
    				.getDefinitions().isStackable())) {
    			if (player.getInventory().getItems().get(slotId) == null) {
    				player.getInventory()
    				.getItems()
    				.set(slotId,
    						new Item(player.getEquipment()
    								.getItem(targetSlot).getId(), player
    								.getEquipment().getItem(targetSlot)
    								.getAmount()));
    			} else
    				player.getInventory()
    				.getItems()
    				.add(new Item(player.getEquipment().getItem(targetSlot)
    						.getId(), player.getEquipment()
    						.getItem(targetSlot).getAmount()));
    			player.getEquipment().getItems().set(targetSlot, null);
    		}
    		if(targetSlot == Equipment.SLOT_AURA)
    			player.getAuraManager().removeAura();
    		int oldAmt = 0;
    		if (player.getEquipment().getItem(targetSlot) != null) {
    			oldAmt = player.getEquipment().getItem(targetSlot).getAmount();
    		}
    		Item item2 = new Item(itemId, oldAmt + item.getAmount());
    		player.getEquipment().getItems().set(targetSlot, item2);
    		player.getEquipment().refresh(targetSlot,
    				targetSlot == 3 ? 5 : targetSlot == 3 ? 0 : 3);
    		if (targetSlot == 3)
    			player.getCombatDefinitions().desecreaseSpecialAttack(0);
    		player.getCharges().wear(targetSlot);
    		return true;
    	}
    	
    	public static void submitSpecialRequest(final Player player) {
    		CoresManager.fastExecutor.schedule(new TimerTask() {
    			@Override
    			public void run() {
    				try {
    					WorldTasksManager.schedule(new WorldTask() {
    						@Override
    						public void run() {
    							player.getCombatDefinitions().switchUsingSpecialAttack();
    						}
    					}, 0);
    				} catch (Throwable e) {
    					Logger.handle(e);
    				}
    			}
    		}, 200);
    	}
    
    	public static void sendWear(Player player, int[] slotIds) {
    		if (player.hasFinished() || player.isDead())
    			return;
    		boolean worn = false;
    		Item[] copy = player.getInventory().getItems().getItemsCopy();
    		for (int slotId : slotIds) {
    			Item item = player.getInventory().getItem(slotId);
    			if (item == null)
    				continue;
    			if (sendWear2(player, slotId, item.getId()))
    				worn = true;
    		}
    		player.getInventory().refreshItems(copy);
    		if (worn) {
    			player.getAppearence().generateAppearenceData();
    			player.getPackets().sendSound(2240, 0, 1);
    		}
    	}
    
    	public static void openEquipmentBonuses(final Player player, boolean banking) {
    		player.stopAll();
    		player.getInterfaceManager().sendInventoryInterface(670);
    		player.getInterfaceManager().sendInterface(667);
    		player.getPackets().sendConfigByFile(4894, banking ? 1 : 0);
    		player.getPackets().sendItems(93,
    				player.getInventory().getItems());
    		player.getPackets().sendInterSetItemsOptionsScript(670, 0, 93,
    				4, 7, "Equip", "Compare", "Stats", "Examine");
    		player.getPackets().sendUnlockIComponentOptionSlots(670, 0, 0,
    				27, 0, 1, 2, 3);
    		player.getPackets().sendIComponentSettings(667, 14, 0, 13, 1030);
    		refreshEquipBonuses(player);
    		if(banking) {
    			player.getTemporaryAttributtes().put("Banking", Boolean.TRUE);
    			player.setCloseInterfacesEvent(new Runnable() {
    				@Override
    				public void run() {
    					player.getTemporaryAttributtes().remove("Banking");
    				}
    
    			});
    		}
    	}
    
    	public static void refreshEquipBonuses(Player player) {
    		player.getPackets().sendIComponentText(667, 28,
    				"Stab: +" + player.getCombatDefinitions().getBonuses()[0]);
    		player.getPackets().sendIComponentText(667, 29,
    				"Slash: +" + player.getCombatDefinitions().getBonuses()[1]);
    		player.getPackets().sendIComponentText(667, 30,
    				"Crush: +" + player.getCombatDefinitions().getBonuses()[2]);
    		player.getPackets().sendIComponentText(667, 31,
    				"Magic: +" + player.getCombatDefinitions().getBonuses()[3]);
    		player.getPackets().sendIComponentText(667, 32,
    				"Range: +" + player.getCombatDefinitions().getBonuses()[4]);
    		player.getPackets().sendIComponentText(667, 33,
    				"Stab: +" + player.getCombatDefinitions().getBonuses()[5]);
    		player.getPackets().sendIComponentText(667, 34,
    				"Slash: +" + player.getCombatDefinitions().getBonuses()[6]);
    		player.getPackets().sendIComponentText(667, 35,
    				"Crush: +" + player.getCombatDefinitions().getBonuses()[7]);
    		player.getPackets().sendIComponentText(667, 36,
    				"Magic: +" + player.getCombatDefinitions().getBonuses()[8]);
    		player.getPackets().sendIComponentText(667, 37,
    				"Range: +" + player.getCombatDefinitions().getBonuses()[9]);
    		player.getPackets().sendIComponentText(667, 38,
    				"Summoning: +" + player.getCombatDefinitions().getBonuses()[10]);
    		player.getPackets().sendIComponentText(667, 39, 
    				"Absorb Melee: +" + player.getCombatDefinitions().getBonuses()[CombatDefinitions.ABSORVE_MELEE_BONUS] + "%");
    		player.getPackets().sendIComponentText(667, 40,
    				"Absorb Magic: +" + player.getCombatDefinitions().getBonuses()[CombatDefinitions.ABSORVE_MAGE_BONUS] + "%");
    		player.getPackets().sendIComponentText(667, 41,
    				"Absorb Ranged: +" + player.getCombatDefinitions().getBonuses()[CombatDefinitions.ABSORVE_RANGE_BONUS]+ "%");
    		player.getPackets().sendIComponentText(667, 42,
    				"Strength: " + player.getCombatDefinitions().getBonuses()[14]);
    		player.getPackets().sendIComponentText(667, 43,
    				"Ranged Str: " + player.getCombatDefinitions().getBonuses()[15]);
    		player.getPackets().sendIComponentText(667, 44,
    				"Prayer: +" + player.getCombatDefinitions().getBonuses()[16]);
    		player.getPackets().sendIComponentText(667,45,"Magic Damage: +" + player.getCombatDefinitions().getBonuses()[17] + "%");
    	}
    }
    Reply With Quote  
     

  9. #9  
    Banned
    Join Date
    Feb 2009
    Age
    30
    Posts
    214
    Thanks given
    5
    Thanks received
    1
    Rep Power
    0
    Um, no that's not a fix that would just put me back to before I made any changes...
    Reply With Quote  
     

  10. #10  
    New Project
    Ben_U's Avatar
    Join Date
    Dec 2011
    Age
    31
    Posts
    1,711
    Thanks given
    109
    Thanks received
    360
    Rep Power
    66
    Code:
    package com.rs.game.player.content;
    
    import java.util.concurrent.CopyOnWriteArrayList;
    import java.util.concurrent.TimeUnit;
    
    import com.rs.cache.loaders.ItemDefinitions;
    import com.rs.game.item.Item;
    import com.rs.game.player.Player;
    import com.rs.utils.ItemExamines;
    import com.rs.utils.ItemSetsKeyGenerator;
    import com.rs.utils.Utils;
    Reply With Quote  
     

Page 1 of 2 12 LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. 718 Slayer problem
    By FRENCH TOAST in forum Help
    Replies: 10
    Last Post: 11-26-2012, 07:58 AM
  2. NRS3 V3 718 problem
    By Avexx in forum Help
    Replies: 1
    Last Post: 10-28-2012, 08:47 PM
  3. [718] Goblin Problem and Text Problem
    By izaazkothawala in forum Configuration
    Replies: 15
    Last Post: 09-02-2012, 07:59 PM
  4. 718 client problem :/
    By Derrezed in forum Help
    Replies: 6
    Last Post: 08-23-2012, 01:12 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •