Skip to content

feat: toggle buttons, placeholders, on_open/on_close hooks, not_tag condition#3

Merged
tickwarden merged 1 commit into
mainfrom
fix/bugs
May 17, 2026
Merged

feat: toggle buttons, placeholders, on_open/on_close hooks, not_tag condition#3
tickwarden merged 1 commit into
mainfrom
fix/bugs

Conversation

@asn44nb
Copy link
Copy Markdown
Collaborator

@asn44nb asn44nb commented May 17, 2026

No description provided.

…/guiapi → help

Toggle buttons:
- New 'toggle' field on buttons (replaces item/actions)
- State backed by a scoreboard tag on the player
- item_on/off, name_on/off, lore_on/off, glint_on/off, actions_on/off
- Default actions_on/off auto-add/remove the tag (run_with: console)
- Render picks the correct face based on player.getCommandTags()

Placeholders (resolved per-player at render + action time):
- {player}, {gui}, {page}, {page1}, {pages}, {score:objective}
- Supported in: name, lore, message value, run_command value, title

on_open / on_close action hooks:
- Top-level 'on_open' / 'on_close' arrays in the GUI JSON
- on_open fires after the screen packet is sent
- on_close fires in GuiScreenHandler.onClosed() via BarrelGuiHandler.onClose(ServerPlayerEntity)
- Useful for tagging players, running scoreboard ops, logging, etc.

not_tag condition:
- Visible when player does NOT have the given tag
- Complement to has_tag for cleaner conditional layouts

/guiapi → help:
- Bare /guiapi (no subcommand) now executes showHelp instead of doing nothing

Example datapack:
- showcase.json: toggle, placeholders in title/lore, on_open/on_close messages,
  not_tag condition example
- admin_panel.json: placeholder in title, on_open/on_close tag hooks, PvP toggle button
@tickwarden tickwarden merged commit 783a08b into main May 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants