Skip to main content

Create Inventory


first, we need to add "use" statement to get the InvMenu and Item we want to use

use muqsit\invmenu\InvMenu;
use pocketmine\item\Item;

Next, we create an Inventory according to its Type (which is available in InvMenu: TYPE_CHEST, TYPE_DOUBLE_CHEST, TYPE_HOPPER)

$menu = InvMenu::create(InvMenu::TYPE_CHEST); //example Using TYPE_CHEST

You can name your Inventory (Name at the top of the GUI)

$menu->setName("My Inventory");

To access the Inventory you can use the following, You can access the Inventory below (InvMenu Inventory extends Pocketmine Inventory class, so you can use all the methods in the Pocketmine Inventory)

$inv = $menu->getInventory();

$inv->setContents([
6 => Item::get(Item::IRON_BARS),
12 => Item::get(Item::END_ROD)
]);
$inv->setItem(3, Item::get(Item::CHEST_MINECART));
$inv->addItem(Item::get(Item::HOPPER_MINECART));
$inv->removeItem(Item::get(Item::VINES));

To Send the Inventory to the player, you can use this:

$menu->send($player); //$player is the player that Inventory wants to send, and not using $inv to send it but $menu

You can also make it readonly (cannot be changed or moved items in your inventory)

$menu->readonly();