tedo0627/inventoryui

这是实现虚拟物品栏的 PocketMine 服务器插件。

1.1.0 2023-09-25 19:29 UTC

This package is auto-updated.

Last update: 2024-09-07 06:37:34 UTC


README

这是实现虚拟物品栏的 PocketMine 服务器插件。

与先前 API 的区别

  • 箱子和其他方块不会被放置。
  • 如果玩家在打开物品栏时跌落或通过水或其他方式移动,物品栏不会关闭。
  • 您可以为您的物品栏指定任意数量的槽位。(已确认最多1000个)
  • 物品栏槽位的垂直长度可以指定。(最大6)

演示

InventoryUI.test.mp4

安装方法

  1. 下载 InventoryUIResourcePack.mcpack 并将其放入 resource_packs 文件夹
  2. 打开文件 resource_packs.yml,将 force_resources 设置为 true 并将 resource_stack 设置为 InventoryUIResourcePack.mcpack
force_resources: true
resource_stack:
  - InventoryUIResourcePack.mcpack

用法

以下代码必须在插件启用时调用。

InventoryUI::setup($this);

打开自定义物品栏

$slot 指定物品栏中的槽位数量,必须是一个大于零的数字。
$title 是物品栏的名称。
$length 以物品栏的垂直长度输入。如果为空,将自动调整。

/** @var Player $player */
$player->setCurrentWindow(new CustomInventory($slot, $title, $length));

扩展自定义物品栏

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 tick(int $tick): void {
        // Called every tick when someone opens 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.
    }
}

示例插件 在此处

许可

"InventoryUI" 在 MIT 许可证

特别感谢

帮助资源包 @yuyaprgrm