package org.bukkit.block;
import org.bukkit.inventory.BlockInventoryHolder;
import org.bukkit.inventory.ChiseledBookshelfInventory;
import org.bukkit.util.Vector;
import org.jetbrains.annotations.NotNull;
/**
* Represents a captured state of a chiseled bookshelf.
*/
public interface ChiseledBookshelf extends io.papermc.paper.block.TileStateInventoryHolder { // Paper - TileStateInventoryHolder
/**
* Gets the last interacted inventory slot.
*
* @return the last interacted slot
*/
int getLastInteractedSlot();
/**
* Sets the last interacted inventory slot.
*
* @param lastInteractedSlot the new last interacted slot
*/
void setLastInteractedSlot(int lastInteractedSlot);
// Paper - move docs to TileStateInventoryHolder
@NotNull
@Override
ChiseledBookshelfInventory getInventory();
@Override // Paper - move docs to TileStateInventoryHolder
@NotNull
ChiseledBookshelfInventory getSnapshotInventory();
/**
* Gets the appropriate slot based on a vector relative to this block.
* Will return -1 if the given vector is not within the bounds of any slot.
*
* The supplied vector should only contain components with values between 0.0 * and 1.0, inclusive. * * @param position a vector relative to this block * @return the slot under the given vector or -1 */ int getSlot(@NotNull Vector position); }