InventoryUI
This is the PocketMine virion that implements the dummy inventory.
This framework was made with the fork
Original repo here
Differences from the original repo
- strict type.
- Use 'registerEvent' instead of 'registerEvents'.
- remove inventory tick (I think it is right for the user to use 'task'.)
- not use entity
- Just as much entity metadata as needed
- Do not send EntityLinkPacket separately and use AddActorPacket at once
Differences from previous APIs
- Chests and other blocks are not placed.
- If a player falls or moves by water or other means when the inventory is open, the inventory will not close.
- You can specify any number of slots in your inventory. (Up to 1000 confirmed)
- Vertical length of inventory slots can be specified. (max. 6)
How to install
- Download CustomInventory.mcpack and put it in the resource_packs folder
- Open file
resource_packs.yml
, set force_resources totrue
and resource_stack toCustomInventory.mcpack
force_resources: true
resource_stack:
- CustomInventory.mcpack
Usage
The following code must be called when the plugin is enabled.
InventoryUI::setup($this);
Open custom inventory
$slot
specifies the number of slots in the inventory and must be a number greater than zero.
$title
is the name of the inventory.
$$panel_x_size
is entered as horizontal length of inventory
$panel_y_size
is entered as the vertical length of the inventory.
/** @var Player $player */
$player->setCurrentWindow(new CustomInventory($slot, $title, $panel_x_size, $panel_y_size));
Extend custom inventory
class SampleInventory extends CustomInventory {
public function __construct() {
parent::__construct(54, "Sample Inventory");
}
public function open(Player $player): void {
// Called when a player opens this inventory.
}
public function click(Player $player, int $slot, Item $sourceItem, Item $targetItem): bool {
// It is called when a slot in the inventory is operated.
// If the return value is true, the operation is canceled.
return false;
}
public function close(Player $player): void {
// Called when the player closes the inventory.
}
}
License
"InventoryUI" is under MIT License
Special Thanks
Help resource pack @famima65536