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.1.tar.gz (18.1 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: endstone_inventoryui-2.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 0018c6b1079eddb23f77915bb820fe080b0a7932e9b82993b46e8eb20d9b1685
MD5 267ffcf45a184731b360cb1e175af29e
BLAKE2b-256 185d90995dfd4c81677638246a9a8075fc34af46738629292cdaa155e2b1990e

See more details on using hashes here.

Provenance

The following attestation bundles were made for endstone_inventoryui-2.0.1.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