Getting Started
We will see here how to create your first inventory using the SmartInvs API.
SmartInventory Builder
First, get your SmartInventory.Builder item using the method SmartInventory.builder(),
then build your inventory with the different parameters:
| Parameter | Description | Default value |
|---|---|---|
| id | Sets the id of the inventory, so you can use it later to check if the player's opened inventory is your custom inventory, per example. | unknown |
| title | Sets the title of the inventory. | Empty String |
| type | Sets the type of the inventory. | CHEST |
| size | Sets the rows and the columns amount of the inventory, for types supporting it, like chests. | 6 Rows, 9 Columns |
| closeable | Defines if the inventory can be closed by the player or not. | true |
| parent | Sets the parent of the inventory, so you can use it later to open it when the player clicks on a "Back" item, per example. | None |
| listener | Adds an event listener for the inventory. (Can be called multiple times) Available events: InventoryClickEvent, InventoryCloseEvent, InventoryOpenEvent, PluginDisableEvent, PlayerQuitEvent, InventoryDragEvent |
None |
| provider | (Mandatory) Sets the content provider for this inventory. | None |
When all of your parameters are defined, use the method build() to create your SmartInventory. We recommend to put the inventory in a constant in order to load it only once.
Example
public static final SmartInventory INVENTORY = SmartInventory.builder()
.id("customInventory")
.provider(new MyProvider())
.size(4, 9)
.title(ChatColor.RED + "Unclosable inventory!")
.closeable(false)
.build();
Then, to open the inventory:
MyInventory.INVENTORY.open(player);
Context-dependent Example
public static SmartInventory getInventory(Player player) {
return SmartInventory.builder()
.provider(new MyProvider(player))
.size(3, 9)
.title("Inventory of " + player.getName())
.build();
}
Then:
MyInventory.getInventory(targetPlayer).open(player);