package de.iani.treasurechest;
import org.bukkit.Location;
import org.bukkit.inventory.Inventory;
public class OpenInventoryData {
private Location location;
private Inventory inventory;
private int[] itemAtLocation;
public OpenInventoryData(Location location, Inventory inventory) {
this.location = location;
this.inventory = inventory;
}
public Inventory getInventory() {
return inventory;
}
public Location getLocation() {
return location;
}
public void setItemAtPosition(int inventoryPosition, int itemListPosition) {
if (itemAtLocation == null) {
itemAtLocation = new int[inventoryPosition + 1];
} else if (itemAtLocation.length <= inventoryPosition) {
int[] temp = itemAtLocation;
itemAtLocation = new int[inventoryPosition + 1];
System.arraycopy(temp, 0, itemAtLocation, 0, temp.length);
}
itemAtLocation[inventoryPosition] = itemListPosition + 1;
}
public int getEntryAtPosition(int inventoryPosition) {
if (itemAtLocation == null || itemAtLocation.length <= inventoryPosition || inventoryPosition < 0) {
return -1;
}
return itemAtLocation[inventoryPosition] - 1;
}
public void removeEntryAtPositionAndShift(int inventoryPosition) {
if (itemAtLocation == null || itemAtLocation.length <= inventoryPosition || inventoryPosition < 0) {
return;
}
int old = itemAtLocation[inventoryPosition];
if (old >= 0) {
itemAtLocation[inventoryPosition] = -1;
for (int i = 0; i < itemAtLocation.length; i++) {
int oldHere = itemAtLocation[i];
if (oldHere > old) {
itemAtLocation[i] = oldHere - 1;
}
}
}
}
}