/CustomInventory

This is the PocketMine virion that implements the dummy inventory.

Primary LanguagePHPMIT LicenseMIT

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

poggit

  1. Download CustomInventory.mcpack and put it in the resource_packs folder
  2. Open file resource_packs.yml, set force_resources to true and resource_stack to CustomInventory.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