Newer
Older
TreasureChest / src / main / java / de / iani / treasurechest / OpenInventoryData.java
@Brokkonaut Brokkonaut on 4 Jul 2017 1 KB Transfer to git
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;
                }
            }
        }
    }
}