I need help with these errors.
Thread I followed
Errors
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);
}
}