Skip to main content

Inventory UI plugin for Endstone servers

Project description

endstone-inventoryui

Virtual inventory plugin for Endstone

API

MenuType

Enum for menu container types:

  • MenuType.CHEST — single chest (27 slots)
  • MenuType.DOUBLE_CHEST — double chest (54 slots)
  • MenuType.DISPENSER — dispenser (9 slots)
  • MenuType.HOPPER — hopper (5 slots)

Menu

Menu(type: MenuType, name: str = "")

Properties:

  • inventory — the MenuInventory instance for this menu. Implements an API similar to Endstone's Inventory.
  • name — display name shown at the top of the menu
  • type — the MenuType used to create this menu

Methods:

  • set_name(name: str) — set the display name
  • set_listener(listener) — set the click callback (see MenuTransaction)
  • set_open_listener(listener) — callback when a player opens the menu: (player: Player) -> None
  • set_close_listener(listener) — callback when a player closes the menu: (player: Player) -> None
  • send_to(player: Player) — display the menu to a player. If the player already has a menu open, this menu is queued and shown after the current one closes.
  • close(player: Player) -> bool — close this menu for a player
  • close_all() — close this menu for all players currently viewing it
  • get_viewers() -> list[Player] — list players who currently have this menu open

MenuTransaction

Properties:

  • player — the player who clicked
  • slot — virtual inventory slot index
  • item_clicked — item in the virtual slot before the action
  • item_clicked_with — item in the other slot involved (player inventory or cursor)
  • action_type — the underlying ItemStackRequestActionType
  • source — source slot info from the request
  • destination — destination slot info from the request

Methods:

  • proceed() -> MenuTransactionResult — allow the transaction to proceed
  • discard() -> MenuTransactionResult — discard transaction

Usage

from endstone import Player
from endstone.inventory import ItemStack
from endstone_inventoryui import Menu, MenuType, MenuTransaction, MenuTransactionResult

menu = Menu(MenuType.CHEST)

menu.inventory.set_item(0, ItemStack("minecraft:diamond", 1))
menu.inventory.set_item(1, ItemStack("minecraft:emerald", 1))


def on_click(tr: MenuTransaction) -> MenuTransactionResult:
    if tr.slot == 0:
        tr.player.send_message("You clicked the diamond!")
        return tr.discard()
    elif tr.slot == 1:
        tr.player.send_message("You clicked the emerald!")
        return tr.discard()

    return tr.proceed()


menu.set_listener(on_click)
menu.send_to(player)

See the example plugin for a full project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

endstone_inventoryui-2.0.0.tar.gz (18.1 kB view details)

Uploaded Source

File details

Details for the file endstone_inventoryui-2.0.0.tar.gz.

File metadata

  • Download URL: endstone_inventoryui-2.0.0.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for endstone_inventoryui-2.0.0.tar.gz
Algorithm Hash digest
SHA256 bdf6a1c16ef44b03d6b4c6783ae0a311ddd35efa7ac651960d8117f87bbe385c
MD5 cf6720051c3b1d8d7e83b6dd97eb1e34
BLAKE2b-256 70d9d6a873ec23aab57bbbcdabe13445c577fa8821efcfe930208e1debaace72

See more details on using hashes here.

Provenance

The following attestation bundles were made for endstone_inventoryui-2.0.0.tar.gz:

Publisher: publish.yml on Shock95/endstone-inventoryui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page