Thread: [718/742] Player Owned Shops errors (UPDATED)

Results 1 to 6 of 6
  1. #1 [718/742] Player Owned Shops errors (UPDATED) 
    Registered Member
    Join Date
    Feb 2012
    Posts
    120
    Thanks given
    17
    Thanks received
    0
    Rep Power
    11
    I need help with these errors.

    Thread I followed

    Errors
    Attached image

    WorldPacketsDecoder.java (7 errors), gives an error for every value word.
    Code:
    			if (player.getTemporaryAttributtes().get("POS_ChooseAmount") != null) {
    				int itemId = (int) player.getTemporaryAttributtes().remove("POS_ChooseAmount");
    				PlayerOwnedShop store = player.getPlayerOwnedShop();
    				if (store.getStoreItems().containsOne(new Item(itemId))) {
    					store.addItem(itemId, value, store.getStoreItemsPrices().get(itemId));
    					return;
    				}
    				player.getPackets().sendInputIntegerScript("Choose price for the item: ");
    				player.getTemporaryAttributtes().put("POS_ChoosePrice", new Object[] { itemId, value });
    				return;
    			}
    			if (player.getTemporaryAttributtes().get("POS_ChooseAmountRemove") != null) {
    				int slotId = (int) player.getTemporaryAttributtes().remove("POS_ChooseAmountRemove");
    				PlayerOwnedShop store = player.getPlayerOwnedShop();
    				store.removeItem(slotId, value);
    				return;
    			}
    			if (player.getTemporaryAttributtes().get("POS_ChoosePrice") != null) {
    				Object[] attributes = (Object[]) player.getTemporaryAttributtes().remove("POS_ChoosePrice");
    				int itemId = (int) attributes[0];
    				int amount = (int) attributes[1];
    				// System.out.println("" + itemId + " " + amount);
    				if (player.getPlayerOwnedShop().addItem(itemId, amount, value))
    					return;
    				return;
    			}
    			if (player.getTemporaryAttributtes().get("POS_ChooseNewPrice") != null) {
    				int itemId = (int) player.getTemporaryAttributtes().remove("POS_ChooseNewPrice");
    				PlayerOwnedShop store = player.getPlayerOwnedShop();
    				if (store.getStoreItems().containsOne(new Item(itemId))) {
    					store.getStoreItemsPrices().replace(itemId, value);
    					for (Player p : store.getViewingPlayers()) {
    						if (p == null)
    							continue;
    						p.getPackets()
    								.sendGameMessage("The price for the item : "
    										+ ItemDefinitions.getItemDefinitions(itemId).getName()
    										+ " has been changed new price is <col=00ffff>"
    										+ Utils.getFormattedNumber(value) + "</col>coins.");
    					}
    					return;
    				}
    				return;
    			}
    			if (player.getTemporaryAttributtes().get("POS_ChooseAmountBuy") != null) {
    				int slotId = (int) player.getTemporaryAttributtes().remove("POS_ChooseAmountBuy");
    				PlayerOwnedShop shop = (PlayerOwnedShop) player.getTemporaryAttributtes().get("POS");
    				shop.buy(player, slotId, value);
    				return;
    			}
    PlayerOwnedShop.java (4 errors), marked in red.
    Code:
    package com.rs.game.player;
    
    import java.io.Serializable;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.concurrent.CopyOnWriteArrayList;
    
    import com.rs.cache.loaders.ItemDefinitions;
    import com.rs.game.item.Item;
    import com.rs.game.item.ItemsContainer;
    import com.rs.game.player.content.ItemConstants;
    import com.rs.net.decoders.WorldPacketsDecoder;
    import com.rs.utils.ItemExamines;
    import com.rs.utils.Utils;
    
    /**
     * @author ARMAR X K1NG
     * 
     */
    public class PlayerOwnedShop implements Serializable {
    
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 3420304334072174474L;
    
    	public static int MAXIMUM_PLAYER_SHOP_ITEMS = 24;
    
    	private transient Player player;
    
    	private Map<Integer, Integer> storeItemsPrices;
    
    	private ItemsContainer<Item> storeItems;
    
    	private transient CopyOnWriteArrayList<Player> viewingPlayers;
    
    	private boolean locked;
    
    	public PlayerOwnedShop() {
    		storeItems = new ItemsContainer<>(MAXIMUM_PLAYER_SHOP_ITEMS, true);
    		storeItemsPrices = new HashMap<Integer, Integer>(MAXIMUM_PLAYER_SHOP_ITEMS);
    	}
    
    	public void openPlayerShop() {
    		player.getTemporaryAttributtes().put("POS", this);
    		player.getInterfaceManager().sendInterface(1284);
    		player.getInterfaceManager().sendInventoryInterface(628);
    		player.getPackets().sendIComponentText(1284, 28, "My Shop");
    		player.getPackets().sendIComponentText(1284, 46, "Shop is " + (locked ? "Locked" : "Unlocked"));
    		player.getPackets().sendHideIComponent(1284, 8, true);
    		player.getPackets().sendHideIComponent(1284, 9, true);
    		player.getPackets().sendInterSetItemsOptionsScript(1284, 7, 100, 8, 3, "Value", "Edit Price", "Remove 1",
    				"Remove 5", "Remove X", "Remove All", "Examine");
    		player.getPackets().sendUnlockIComponentOptionSlots(1284, 7, 0, 10, 0, 1, 2, 3, 4, 5, 6);
    		player.getPackets().sendIComponentSettings(628, 0, 0, 27, 1278);
    		player.getPackets().sendUnlockIComponentOptionSlots(628, 0, 0, 27, 0, 1, 2, 3, 4, 5);
    		player.getPackets().sendInterSetItemsOptionsScript(628, 0, 93, 4, 7, "Add 1", "Add 5", "Add 10", "Add X",
    				"Add All", "Examine");
    		player.getPackets().sendItems(100, storeItems);
    		viewingPlayers.add(player);
    		player.setCloseInterfacesEvent(new Runnable() {
    			@Override
    			public void run() {
    				player.getTemporaryAttributtes().remove("POS");
    				player.setCloseInterfacesEvent(null);
    				player.closeInterfaces();
    				viewingPlayers.remove(player);
    			}
    		});
    	}
    
    	public void showMyShopToPlayer(final Player customer) {
    		customer.getTemporaryAttributtes().put("POS", this);
    		customer.getInterfaceManager().sendInterface(1284);
    		customer.getPackets().sendIComponentText(1284, 28, player.getDisplayName() + "'s Shop");
    		customer.getPackets().sendHideIComponent(1284, 8, true);
    		customer.getPackets().sendHideIComponent(1284, 9, true);
    		customer.getPackets().sendHideIComponent(1284, 10, true);
    		customer.getPackets().sendInterSetItemsOptionsScript(1284, 7, 100, 8, 3, "Value", "Buy 1", "Buy 5", "Buy X",
    				"Buy All", "Examine");
    		customer.getPackets().sendUnlockIComponentOptionSlots(1284, 7, 0, 10, 0, 1, 2, 3, 4, 5);
    		customer.getPackets().sendItems(100, storeItems);
    		viewingPlayers.add(customer);
    		customer.setCloseInterfacesEvent(new Runnable() {
    			@Override
    			public void run() {
    				customer.getTemporaryAttributtes().remove("POS");
    				customer.setCloseInterfacesEvent(null);
    				customer.closeInterfaces();
    				viewingPlayers.remove(customer);
    			}
    		});
    	}
    
    	public boolean handleButtonClick(Player customer, int interfaceId, int componentId, int slotId, int slotId2,
    			int packetId) {
    		if (getPlayer().getUsername().equalsIgnoreCase(customer.getUsername())) {
    			switch (interfaceId) {
    			case 628:
    				switch (packetId) {
    				case WorldPacketsDecoder.ACTION_BUTTON1_PACKET:
    				case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
    				case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
    				case WorldPacketsDecoder.ACTION_BUTTON5_PACKET:
    					int amount = packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET ? 1
    							: packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET ? 5
    									: packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET ? 10
    											: player.getInventory().getAmountOf(slotId2);
    					if (storeItems.containsOne(new Item(slotId2))) {
    						addItem(slotId2, amount, storeItemsPrices.get(slotId2));
    						return true;
    					}
    					player.getPackets().sendInputIntegerScript("Choose price for the item: ");
    					player.getTemporaryAttributtes().put("POS_ChoosePrice", new Object[] { slotId2, amount });
    					return true;
    				case WorldPacketsDecoder.ACTION_BUTTON4_PACKET:
    					player.getPackets().sendInputIntegerScript("Choose How many would you like to add: ");
    					player.getTemporaryAttributtes().put("POS_ChooseAmount", slotId2);
    					return true;
    				case WorldPacketsDecoder.ACTION_BUTTON9_PACKET:
    					player.getInventory().sendExamine(slotId);
    					return true;
    				}
    				break;
    			case 1284:
    				if (componentId == 10) {
    					toggleLocked();
    					for (Player p : viewingPlayers) {
    						if (p == null)
    							continue;
    						p.getPackets()
    								.sendGameMessage("Shop is currently : " + (isLocked() ? "Locked" : "Unlocked") + " .");
    					}
    					return true;
    				}
    				switch (packetId) {
    				case WorldPacketsDecoder.ACTION_BUTTON1_PACKET:
    					int price = storeItemsPrices.get(slotId2);
    					player.getPackets().sendGameMessage(
    							"Current price for item : " + ItemDefinitions.getItemDefinitions(slotId2).getName()
    									+ " is <col=00ffff>" + Utils.getFormattedNumber(price) + "</col> coins.");
    					return true;
    				case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
    					player.getPackets().sendInputIntegerScript("Choose new price for the item: ");
    					player.getTemporaryAttributtes().put("POS_ChooseNewPrice", slotId2);
    					return true;
    				case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
    				case WorldPacketsDecoder.ACTION_BUTTON4_PACKET:
    				case WorldPacketsDecoder.ACTION_BUTTON9_PACKET:
    					int quantity = packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET ? 1
    							: packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET ? 5
    									: storeItems.getNumberOf(slotId2);
    					removeItem(slotId, quantity);
    					return true;
    				case WorldPacketsDecoder.ACTION_BUTTON5_PACKET:
    					player.getPackets().sendInputIntegerScript("Choose How many would you like to remove: ");
    					player.getTemporaryAttributtes().put("POS_ChooseAmountRemove", slotId);
    					return true;
    				case WorldPacketsDecoder.ACTION_BUTTON6_PACKET:
    					sendExamine(player, slotId);
    					return true;
    				}
    			}
    			return false;
    		} else {
    			if (player == null || player.isDead()) {
    				customer.getPackets()
    						.sendGameMessage("Seems like the owner of the shop went offline please try again later.");
    				return false;
    			}
    			switch (packetId) {
    			case WorldPacketsDecoder.ACTION_BUTTON1_PACKET:
    				int price = storeItemsPrices.get(slotId2);
    				customer.getPackets().sendGameMessage(
    						"Current price for item : " + ItemDefinitions.getItemDefinitions(slotId2).getName()
    								+ " is <col=00ffff>" + Utils.getFormattedNumber(price) + "</col> coins.");
    				return true;
    			case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
    			case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
    			case WorldPacketsDecoder.ACTION_BUTTON5_PACKET:
    				if (isLocked()) {
    					customer.getPackets().sendGameMessage("You can't buy items while the shop is locked.");
    					return true;
    				}
    				int quantity = packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET ? 1
    						: packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET ? 5 : storeItems.getNumberOf(slotId2);
    				buy(customer, slotId, quantity);
    				return true;
    			case WorldPacketsDecoder.ACTION_BUTTON4_PACKET:
    				if (isLocked()) {
    					customer.getPackets().sendGameMessage("You can't buy items while the shop is locked.");
    					return true;
    				}
    				customer.getPackets().sendInputIntegerScript("Choose How many would you like to buy: ");
    				customer.getTemporaryAttributtes().put("POS_ChooseAmountBuy", slotId);
    				return true;
    			case WorldPacketsDecoder.ACTION_BUTTON9_PACKET:
    				sendExamine(customer, slotId);
    				return true;
    			}
    			return false;
    		}
    	}
    
    	public boolean buy(Player customer, int slotId, int quantity) {
    		Item item = storeItems.get(slotId);
    		if (item == null)
    			return false;
    		if (item.getAmount() == 0) {
    			customer.getPackets().sendGameMessage("There is no stock of that item at the moment.");
    			return false;
    		}
    		int price = storeItemsPrices.get(item.getId());
    		int amountCoins = customer.getInventory().getCoinsAmount();
    		int maxQuantity = amountCoins / price;
    		int buyQ = item.getAmount() > quantity ? quantity : item.getAmount();
    		boolean enoughCoins = maxQuantity >= buyQ;
    		if (!enoughCoins) {
    			customer.getPackets().sendGameMessage(
    					"You don't have enough " + ItemDefinitions.getItemDefinitions(995).getName().toLowerCase() + ".");
    			buyQ = maxQuantity;
    		} else if (quantity > buyQ)
    			customer.getPackets().sendGameMessage("The shop has run out of stock.");
    		if (item.getDefinitions().isStackable()) {
    			if (customer.getInventory().getFreeSlots() < 1) {
    				customer.getPackets().sendGameMessage("Not enough space in your inventory.");
    				return false;
    			}
    		} else {
    			int freeSlots = customer.getInventory().getFreeSlots();
    			if (buyQ > freeSlots) {
    				buyQ = freeSlots;
    				customer.getPackets().sendGameMessage("Not enough space in your inventory.");
    			}
    		}
    		if (buyQ != 0) {
    			int totalPrice = price * buyQ;
    			if (customer.getInventory().removeItemMoneyPouch(new Item(995, totalPrice))) {
    				customer.getInventory().addItem(item.getId(), buyQ);
    				player.getBank().addItem(995, totalPrice, true);
    				player.getPackets()
    						.sendGameMessage(customer.getDisplayName() + " has just bought " + buyQ + " X " + item.getName()
    								+ " for " + Utils.getFormattedNumber(totalPrice)
    								+ "</col> coins the money has been added to your bank.");
    				Item[] itemsBefore = storeItems.getItemsCopy();
    				storeItems.remove(slotId, new Item(item.getId(), buyQ));
    				if (!storeItems.containsOne(item))
    					storeItemsPrices.remove(item.getId());
    				refreshItems(itemsBefore);
    				refreshShop();
    			}
    		}
    		return true;
    	}
    
    	public static void sendExamine(Player player, int slotId) {
    		PlayerOwnedShop POS = (PlayerOwnedShop) player.getTemporaryAttributtes().get("POS");
    		if (POS == null)
    			return;
    		if (slotId >= POS.getStoreItems().getSize())
    			return;
    		Item item = POS.getStoreItems().get(slotId);
    		if (item == null)
    			return;
    		player.getPackets().sendGameMessage(ItemExamines.getExamine(item));
    	}
    
    	public boolean addItem(int itemId, int amount, int price) {
    		return addItem(new Item(itemId, amount), price);
    	}
    
    	public boolean addItem(Item item, int price) {
    		if (storeItems.getFreeSlots() == 0) {
    			player.getPackets().sendGameMessage("Your shop is currently full.");
    			return false;
    		}
    		if (!ItemConstants.isTradeable(item) || item.getId() == 995) {
    			player.getPackets().sendGameMessage("That item cannot be added!");
    			return false;
    		}
    		Item[] itemsBefore = storeItems.getItemsCopy();
    		int invAmount = player.getInventory().getAmountOf(item.getId());
    		int storeAmount = storeItems.getNumberOf(item);
    		if (item.getAmount() > invAmount)
    			item.setAmount(invAmount);
    		if (invAmount != 0 && storeAmount + item.getAmount() <= 0) {
    			item.setAmount(Integer.MAX_VALUE - storeAmount);
    			player.getPackets().sendGameMessage("Not enough space in your store.");
    		}
    		if (item.getAmount() == 0)
    			return false;
    		if (!storeItems.add(item)) {
    			player.getPackets().sendGameMessage("Not enough space in store.");
    			return false;
    		}
    		player.getInventory().deleteItem(item);
    		storeItemsPrices.put(item.getId(), price);
    		refreshItems(itemsBefore);
    		refreshShop();
    		return true;
    	}
    
    	public boolean removeItem(int slotId, int quantity) {
    		Item item = storeItems.get(slotId);
    		if (item == null)
    			return false;
    		if (quantity == 0)
    			return false;
    		Item[] itemsBefore = storeItems.getItemsCopy();
    		int maxAmount = storeItems.getNumberOf(item);
    		item = new Item(item.getId(), quantity < maxAmount ? quantity : maxAmount);
    		if (!player.getInventory().addItem(item))
    			return false;
    		storeItems.remove(slotId, item);
    		if (!storeItems.containsOne(item))
    			storeItemsPrices.remove(item.getId());
    		refreshItems(itemsBefore);
    		refreshShop();
    		return true;
    	}
    
    	private void refreshItems(Item[] itemsBefore) {
    		int[] changedSlots = new int[itemsBefore.length];
    		int count = 0;
    		for (int index = 0; index < itemsBefore.length; index++) {
    			Item item = storeItems.getItems()[index];
    			if (itemsBefore[index] != item) {
    				changedSlots[count++] = index;
    			}
    		}
    		int[] finalChangedSlots = new int[count];
    		System.arraycopy(changedSlots, 0, finalChangedSlots, 0, count);
    		refresh(finalChangedSlots);
    	}
    
    	private void refresh(int... slots) {
    		for (Player player : viewingPlayers) {
    			if (player == null)
    				continue;
    			player.getPackets().sendUpdateItems(100, storeItems, slots);
    		}
    	}
    
    	public void refreshShop() {
    		for (Player player : viewingPlayers) {
    			if (player == null)
    				continue;
    			player.getPackets().sendItems(100, storeItems);
    		}
    	}
    
    	public Player getPlayer() {
    		return player;
    	}
    
    	public void setPlayer(Player player) {
    		this.player = player;
    		viewingPlayers = new CopyOnWriteArrayList<Player>();
    	}
    
    	public Map<Integer, Integer> getStoreItemsPrices() {
    		return storeItemsPrices;
    	}
    
    	public ItemsContainer<Item> getStoreItems() {
    		return storeItems;
    	}
    
    	public CopyOnWriteArrayList<Player> getViewingPlayers() {
    		return viewingPlayers;
    	}
    
    	public boolean isLocked() {
    		return locked || player == null;
    	}
    
    	public void toggleLocked() {
    		this.locked = !locked;
    		player.getPackets().sendIComponentText(1284, 46, "Shop is " + (locked ? "Locked" : "Unlocked"));
    	}
    }
    Inventory.java
    Code:
    package com.rs.game.player;
    
    import java.io.Serializable;
    
    import com.rs.game.Region;
    import com.rs.game.World;
    import com.rs.game.WorldTile;
    import com.rs.game.item.Item;
    import com.rs.game.item.ItemsContainer;
    import com.rs.game.item.FloorItem;
    import com.rs.utils.ItemExamines;
    import com.rs.utils.Lend;
    import com.rs.utils.Utils;
    
    public final class Inventory implements Serializable {
    
    	private static final long serialVersionUID = 8842800123753277093L;
    
    	public ItemsContainer<Item> items;
    
    	private transient Player player;
    
    	public static final int INVENTORY_INTERFACE = 679;
    
    	public Inventory() {
    		items = new ItemsContainer<Item>(28, false);
    	}
    
    	public boolean addCoins(Item item) {
    		if (item.getId() < 0
    				|| item.getAmount() < 0
    				|| !Utils.itemExists(item.getId())
    				|| !player.getControlerManager().canAddInventoryItem(
    						item.getId(), item.getAmount()))
    			return false;
    		Item[] itemsBefore = items.getItemsCopy();
    		if (!items.add(item)) {
    			items.add(new Item(item.getId(), items.getFreeSlots()));
    			player.getPackets().sendGameMessage(
    					"Not enough space in your inventory.");
    			refreshItems(itemsBefore);
    			return false;
    		}
    		refreshItems(itemsBefore);
    		return true;
    	}
    
    
    	public boolean addItem(int itemId, int amount) {
    		if (itemId < 0
    				|| amount < 0
    				|| !Utils.itemExists(itemId)
    				|| !player.getControlerManager().canAddInventoryItem(itemId,
    						amount))
    			return false;
    		Item[] itemsBefore = items.getItemsCopy();
    		if (itemId == 995 && this.getNumerOf(995) + amount < 0) {
    			player.getPackets().sendGameMessage("You cannot hold such a large amount of cash in your inventory.");
    			//player.getMoneyPouch().addMoney(amount, false);
    			return false;
    		}
    		if (!items.add(new Item(itemId, amount))) {
    			items.add(new Item(itemId, items.getFreeSlots()));
    			player.getPackets().sendGameMessage(
    					"Not enough space in your inventory.");
    			refreshItems(itemsBefore);
    			return false;
    		}
    		refreshItems(itemsBefore);
    		return true;
    	}
    
    
    	public boolean addItem(Item item) {
    		if (item.getId() < 0
    				|| item.getAmount() < 0
    				|| !Utils.itemExists(item.getId())
    				|| !player.getControlerManager().canAddInventoryItem(
    						item.getId(), item.getAmount()))
    			return false;
    		Item[] itemsBefore = items.getItemsCopy();
    		int amount = item.getAmount();
    		int itemId = item.getId();
    		if (itemId == 995 && this.getNumerOf(995) + amount < 0) {
    			player.getPackets().sendGameMessage("You cannot hold such a large amount of cash in your inventory.");
    			//player.getMoneyPouch().addMoney(amount, false);
    			return false;
    		}
    		if (!items.add(item)) {
    			items.add(new Item(item.getId(), items.getFreeSlots()));
    			player.getPackets().sendGameMessage(
    					"Not enough space in your inventory.");
    			refreshItems(itemsBefore);
    			return false;
    		}
    		refreshItems(itemsBefore);
    		return true;
    	}
    
    	public boolean addItem(FloorItem floorItem) {
    		if (floorItem.getAmount() < 0
    				|| !Utils.itemExists(floorItem.getId())
    				|| !player.getControlerManager().canAddInventoryItem(
    						floorItem.getId(), floorItem.getAmount()))
    			return false;
    		int regionId = floorItem.getTile().getRegionId();
    		Region region = World.getRegion(regionId);
    		int amount = floorItem.getAmount();
    		int pouchMoney = player.getMoneyPouch().getTotal();
    		int moneytoAdd = 0;
    		int moneyInInv = getNumerOf(995);
    
    		if(pouchMoney + amount <= 0) {
    			moneytoAdd = Integer.MAX_VALUE - pouchMoney;
    			player.getPackets().sendGameMessage("Not enough space in your pouch.");
    		} else {
    			moneytoAdd = amount;
    		}
    
    		int moneyLeft = amount - moneytoAdd;
    		if (moneytoAdd > 0) {
    			player.getMoneyPouch().addMoneyMisc(moneytoAdd);
    			if (getFreeSlots() == 0) {
    				floorItem.setAmount(amount - moneytoAdd);
    				refresh();
    				return false;
    			}
    		}
    		moneytoAdd = 0;
    		if (moneyLeft != 0) {
    			if (moneyLeft + moneyInInv <= 0) {
    				moneytoAdd = (moneyInInv == Integer.MAX_VALUE ? 0 : (Integer.MAX_VALUE - moneyInInv));
    				addItem(995, moneytoAdd);
    				floorItem.setAmount(amount - moneytoAdd);
    				refresh();
    				return false;
    			}
    			region.forceGetFloorItems().remove(floorItem);
    			addItem(995, moneyLeft);
    			refresh();
    			return true;
    		}
    		region.forceGetFloorItems().remove(floorItem);
    		refresh();
    		return true;
    	}
    
    	public void withdrawCoins(Item item, int bankSlot) {
    		if (item.getId() < 0
    				|| item.getAmount() < 0
    				|| !Utils.itemExists(item.getId())
    				|| !player.getControlerManager().canAddInventoryItem(
    						item.getId(), item.getAmount()))
    			return;
    		int amount = item.getAmount();
    		int pouchMoney = player.getMoneyPouch().getTotal();
    		int moneytoAdd = 0;
    		int moneyInInv = getNumerOf(995);
    
    		if(pouchMoney + amount <= 0) {
    			moneytoAdd = Integer.MAX_VALUE - pouchMoney;
    			player.getPackets().sendGameMessage("Not enough space in your pouch.");
    		} else {
    			moneytoAdd = amount;
    		}//lool wtf??
    
    		int moneyLeft = amount - moneytoAdd;
    		if (moneytoAdd > 0) {
    			player.getMoneyPouch().addMoneyMisc(moneytoAdd);
    			if (getFreeSlots() == 0) {
    				player.getBank().setItem(bankSlot, amount - moneytoAdd);
    				player.getPackets().sendGameMessage("Not enough space in your inventory.");
    				refresh();
    				return;
    			}
    		}
    
    		moneytoAdd = 0;
    		if (moneyLeft != 0) {
    			if (moneyLeft + moneyInInv <= 0) {
    				moneytoAdd = (moneyInInv == Integer.MAX_VALUE ? 0 : (Integer.MAX_VALUE - moneyInInv));
    				if(moneytoAdd == 0)
    					return;
    				addItem(995, moneytoAdd);
    				player.getBank().removeItem(bankSlot, moneytoAdd, true, false);
    				refresh();
    				return;
    			}
    			player.getBank().removeItem(bankSlot, item.getAmount(), true, false);
    			addItem(995, moneyLeft);
    			refresh();
    			return;
    		}
    		player.getBank().removeItem(bankSlot, item.getAmount(), true, false);
    		refresh();
    		return;
    	}
    
    	public boolean containsCoins(int amount) {
    		if (player.getMoneyPouch().getTotal() >= amount)
    			return true;
    		return items.contains(new Item(995, amount));
    	}
    
    	public boolean containsItem(int itemId, int ammount) {
    		return items.contains(new Item(itemId, ammount));
    	}
    
    	public boolean containsItems(int[] itemIds, int[] ammounts) {
    		int size = itemIds.length > ammounts.length ? ammounts.length
    				: itemIds.length;
    		for (int i = 0; i < size; i++)
    			if (!items.contains(new Item(itemIds[i], ammounts[i])))
    				return false;
    		return true;
    	}
    
    	public boolean containsItems(Item[] item) {
    		for (int i = 0; i < item.length; i++)
    			if (!items.contains(item[i]))
    				return false;
    		return true;
    	}
    
    	public boolean containsOneItem(int... itemIds) {
    		for (int itemId : itemIds) {
    			if (items.containsOne(new Item(itemId, 1)))
    				return true;
    		}
    		return false;
    	}
    
    	public void deleteCoins(int amount) {
    		if (player.getMoneyPouch().getTotal() >= amount) {
    			player.getMoneyPouch().removeMoneyMisc(amount);
    			return;
    		}
    		Item[] itemsBefore = items.getItemsCopy();
    		items.remove(new Item(995, amount));
    		refreshItems(itemsBefore);
    	}
    
    	public void deleteItem(int itemId, int amount) {
    		if (!player.getControlerManager()
    				.canDeleteInventoryItem(itemId, amount))
    			return;
    		
    		if (itemId == 995 && player.getMoneyPouch().getTotal() >= amount) {
    			player.getMoneyPouch().removeMoneyMisc(amount);
    			return;
    		}
    		Item[] itemsBefore = items.getItemsCopy();
    		items.remove(new Item(itemId, amount));
    		refreshItems(itemsBefore);
    	}
    
    	public void deleteItem(int item, int slot, boolean ok) {
    		if (!player.getControlerManager().canDeleteInventoryItem(item, 1))
    			return;
    		Item[] itemsBefore = items.getItemsCopy();
    		items.remove(slot, new Item(item));
    		refreshItems(itemsBefore);
    	}
    
    	public void deleteItem(int slot, Item item) {
    		if (!player.getControlerManager().canDeleteInventoryItem(item.getId(),
    				item.getAmount()))
    			return;
    		Item[] itemsBefore = items.getItemsCopy();
    		items.remove(slot, item);
    		refreshItems(itemsBefore);
    	}
    
    	public void deleteItem(Item item) {
    		if (!player.getControlerManager().canDeleteInventoryItem(item.getId(),
    				item.getAmount()))
    			return;
    		Item[] itemsBefore = items.getItemsCopy();
    		items.remove(item);
    		refreshItems(itemsBefore);
    	}
    
    	public int getFreeSlots() {
    		return items.getFreeSlots();
    	}
    
    	public Item getItem(int slot) {
    		return items.get(slot);
    	}
    
    	public ItemsContainer<Item> getItems() {
    		return items;
    	}
    
    	public int getItemsContainerSize() {
    		return items.getSize();
    	}
    
    	public int getNumerOf(int itemId) {
    		return items.getNumberOf(itemId);
    	}
    
    	public boolean hasFreeSlots() {
    		return items.getFreeSlot() != -1;
    	}
    
    	public void init() {
    		player.getPackets().sendItems(93, items);
    	}
    
    	public void refresh() {
    		player.getPackets().sendItems(93, items);
    	}
    
    	public void refresh(int... slots) {
    		player.getPackets().sendUpdateItems(93, items, slots);
    	}
    
    	public void refreshItems(Item[] itemsBefore) {
    		int[] changedSlots = new int[itemsBefore.length];
    		int count = 0;
    		for (int index = 0; index < itemsBefore.length; index++) {
    			if (itemsBefore[index] != items.getItems()[index])
    				changedSlots[count++] = index;
    		}
    		int[] finalChangedSlots = new int[count];
    		System.arraycopy(changedSlots, 0, finalChangedSlots, 0, count);
    		refresh(finalChangedSlots);
    	}
    
    	public boolean removeItems(Item... list) {
    		for (Item item : list) {
    			if (item == null)
    				continue;
    			deleteItem(item);
    		}
    		return true;
    	}
    
    	public void reset() {
    		items.reset();
    		init(); // as all slots reseted better just send all again
    	}
    	
    	public void sendExamine(int slotId) {
    		if (slotId >= getItemsContainerSize())
    			return;
    		Item item = items.get(slotId);
    		if (item == null)
    			return;
    		player.getPackets().sendInventoryMessage(0, slotId,
    				ItemExamines.getExamine(item));
    	}
    
    	public void setPlayer(Player player) {
    		this.player = player;
    	}
    
    	/*
    	 * No refresh needed its client to who does it :p
    	 */
    	public void switchItem(int fromSlot, int toSlot) {
    		Item[] itemsBefore = items.getItemsCopy();
    		Item fromItem = items.get(fromSlot);
    		Item toItem = items.get(toSlot);
    		items.set(fromSlot, toItem);
    		items.set(toSlot, fromItem);
    		refreshItems(itemsBefore);
    	}
    
    	public void unlockInventoryOptions() {
    		player.getPackets().sendIComponentSettings(INVENTORY_INTERFACE, 0, 0,
    				27, 4554126);
    		player.getPackets().sendIComponentSettings(INVENTORY_INTERFACE, 0, 28,
    				55, 2097152);
    	}
    
    	public boolean contains(int itemId) {
    		return items.contains(new Item(itemId, 1));
    	}
    
        public boolean containsItemToolBelt(int id) {
    	return containsOneItem(id) || player.getToolbelt().containsItem(id);
        }
        
        public boolean containsItemToolBelt(int id, int amount) {
    	return containsItem(id, amount) || player.getToolbelt().containsItem(id);
        }
    
        public void replaceItem(int id, int amount, int slot) {
    	Item item = items.get(slot);
    	if (item == null)
    	    return;
    	item.setId(id);
    	item.setAmount(amount);
    	refresh(slot);
        }
        
    }
    Last edited by Lunar Neo; 01-22-2018 at 04:15 PM. Reason: Update
    Reply With Quote  
     

  2. #2  
    Respected Member


    Kris's Avatar
    Join Date
    Jun 2016
    Age
    26
    Posts
    3,638
    Thanks given
    820
    Thanks received
    2,642
    Rep Power
    5000
    not even showing us the errors alrighty.
    Attached image
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    Feb 2012
    Posts
    120
    Thanks given
    17
    Thanks received
    0
    Rep Power
    11
    Quote Originally Posted by Kris View Post
    not even showing us the errors alrighty.
    Sorry, I'm using Eclipse and I don't know how to copy error codes.
    Attached image
    Reply With Quote  
     

  4. #4  
    Registered Member

    Join Date
    Oct 2011
    Posts
    2,084
    Thanks given
    0
    Thanks received
    1,043
    Rep Power
    3608
    Quote Originally Posted by Cagin View Post
    Sorry, I'm using Eclipse and I don't know how to copy error codes.

    Attached image
    you're missing a ton of methods, variables, etc.
    Reply With Quote  
     

  5. #5  
    Registered Member
    Join Date
    Feb 2012
    Posts
    120
    Thanks given
    17
    Thanks received
    0
    Rep Power
    11
    Quote Originally Posted by Omelete View Post
    you're missing a ton of methods, variables, etc.
    Yeah, it states that in the error, I just don't know how to solve the methods and variables. ItemDefinitions was just missing an import, so that is solved.
    Reply With Quote  
     

  6. #6  
    Owner of Zerion/Orvii
    robstever's Avatar
    Join Date
    Jun 2013
    Posts
    154
    Thanks given
    60
    Thanks received
    22
    Rep Power
    45
    Did you ever solve this? PM me
    Reply With Quote  
     


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. [Buying-PP] 718 seach player owned shop function
    By OodlesOfNoodles in forum Buying
    Replies: 0
    Last Post: 09-09-2015, 09:28 PM
  2. Replies: 36
    Last Post: 07-23-2014, 10:31 PM
  3. Replies: 10
    Last Post: 11-30-2013, 07:57 PM
  4. Replies: 2
    Last Post: 12-11-2012, 04:57 AM
  5. [PI] Player Owned Shops Error
    By LiilCraZy in forum Help
    Replies: 1
    Last Post: 08-31-2011, 11:58 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •