
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 →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta