Sueta
IN

InventoryAPI

1.2

Create GUIs very simple and fast.

·Plugin


Description
This API allows developers to create GUIs very simple and fast. The API supports any type of inventory. Every item has its own ItemListener. When a player clicks an item, the ItemListener will be activated. All names and descriptions can be customized.

Features

  • easy creation of menus
  • all types of inventories
  • fully customizable
  • easy to create items
  • ItemListener
  • multiple pages
  • supports colors with "&"
  • JavaDocs

API

Methods

Create an Inventory:

Inventory inv = InventoryAPI.createInventory(name, type);


Add an item:

inv.setSlot(slot, item, ItemListener);

Create an item:

ItemStack item = InventoryAPI.createItem(name, description, material, enchantments, amount);

Open the inventory:

inv.open(player);

Examples
A single-page inventory that will open when the player types "/inv":

import java.util.Arrays;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryType;
import net.virushd.inventory.inventory.Inventory;
import net.virushd.inventory.inventory.ItemListener;
import net.virushd.inventory.main.InventoryAPI;

public class Normal implements CommandExecutor {
 
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        Player p = (Player) sender;
        if (cmd.getName().equalsIgnoreCase("inv")) {
 
            // first we have to create the inventory
            Inventory exampleInventory = InventoryAPI.createInventory("&aExample-Inventory", InventoryType.HOPPER);
    
            // now we can add the items
    
            // add an item named "Diamonds!!!"
            exampleInventory.setSlot(0, InventoryAPI.createItem("&bDiamonds!!!", null , Material.DIAMOND, null, 1), new ItemListener() {
                @Override
                public void onItemClick(Player p) { // here you can write everything you want
                    p.setHealth(0.0D); // for example kill the player
                }
            });
    
            // add some more items
            exampleInventory.setSlot(1, InventoryAPI.createItem("&cBread", null, Material.BREAD, null, 1), new ItemListener() {
                @Override
                public void onItemClick(Player p) {
                    p.getInventory().addItem(InventoryAPI.createItem(null, null, Material.BREAD, null, 10));
                }
            });
            exampleInventory.setSlot(2, InventoryAPI.createItem("&cMessage", Arrays.asList("&7Send a message to everyone."), Material.SIGN, null, 1), new ItemListener() {
                @Override
                public void onItemClick(Player p) {
                    for (Player players : Bukkit.getOnlinePlayers()) {
                        players.sendMessage("hi guys");
                    }
                }
            });
    
            // open the inventory
            exampleInventory.open(p);
        }
        return true;
    }
}

An inventory with multiple pages that will open when the player types "/inv":

import java.util.Arrays;


import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryType;

import net.virushd.inventory.inventory.Inventory;
import net.virushd.inventory.inventory.ItemListener;
import net.virushd.inventory.main.InventoryAPI;

public class Pages implements CommandExecutor {
 
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        Player p = (Player) sender;
        if (cmd.getName().equalsIgnoreCase("inv")) {
 
            // first we have to create the inventory and its pages
            Inventory exampleInventory_1 = InventoryAPI.createInventory("&aExample-Inventory &7- &c1", InventoryType.DISPENSER);
            Inventory exampleInventory_2 = InventoryAPI.createInventory("&aExample-Inventory &7- &c2", InventoryType.DISPENSER);
      
            // now we can add the items for the first page
      
            // first we have to add the item to go to the next page
            exampleInventory_1.setSlot(8, InventoryAPI.createItem("&cForward", Arrays.asList("&7This will open the next page."), Material.ARROW, null, 1), new ItemListener() {
                @Override
                public void onItemClick(Player p) {
                    exampleInventory_2.open(p);
                }
            });
      
            // add some more items
            exampleInventory_1.setSlot(0, InventoryAPI.createItem("&cBread", null, Material.BREAD, null, 1), new ItemListener() {
                @Override
                public void onItemClick(Player p) {
                    p.getInventory().addItem(InventoryAPI.createItem(null, null, Material.BREAD, null, 10));
                }
            });
            exampleInventory_1.setSlot(1, InventoryAPI.createItem("&cMessage", Arrays.asList("&7Send a message to everyone."), Material.SIGN, null, 1), new ItemListener() {
                @Override
                public void onItemClick(Player p) {
                    for (Player players : Bukkit.getOnlinePlayers()) {
                        players.sendMessage("hi guys");
                    }
                }
            });
      
            // now we can add the items for the second page
      
            // the item to go to the previous page
            exampleInventory_2.setSlot(6, InventoryAPI.createItem("&cBackward", Arrays.asList("&7This will open the previous page."), Material.ARROW, null, 1), new ItemListener() {
                @Override
                public void onItemClick(Player p) {
                    exampleInventory_1.open(p);
                }
            });
      
            // add some more items
            exampleInventory_2.setSlot(0, InventoryAPI.createItem("&cCreative", Arrays.asList("&7Set your gamemode to Creative."), Material.DIAMOND_SWORD, null, 1), new ItemListener() {
                @Override
                public void onItemClick(Player p) {
                    p.setGameMode(GameMode.CREATIVE);
                }
            });
            exampleInventory_2.setSlot(1, InventoryAPI.createItem("&cSurvival", Arrays.asList("&7Set your gamemode to Survival."), Material.WOOD_SWORD, null, 1), new ItemListener() {
                @Override
                public void onItemClick(Player p) {
                    p.setGameMode(GameMode.SURVIVAL);
                }
            });
      
            // open the first page
            exampleInventory_1.open(p);
        }
        return true;
    }
}

Thank you for choosing InventoryAPI;)
(Send me a message if you have any issue or some improvement suggestions.)

Similar projects

Plugin →