Custom Menus

Guide to configure custom menus

You can create custom menus in the Aurora/gui/menus folder. You can create subfolders as well inside this folder. Menu filenames must use lowercase english alphabet, numbers and underscore.

Example configuration

# What commands should open the menu?
# Changing this might require a full server restart depending on server version
# (Optional, can be deleted)
register-commands:
  - "mymenu"

# Title of the inventory
title: "&6Example Menu"
# How many rows should the inventory have?
rows: 6

# Should we refresh the menu periodically? (most of the times, you don't need this)
# (Optional, can be deleted)
refresh: false
# How often should the menu be refreshed? (in seconds, minimum 1, has to be an integer)
# (Optional, can be deleted)
refresh-interval: 5

# What are the requirements for opening the menu? can be multiple
# (Optional, can be deleted)
open-requirements:
  - requirement: "[permission] example.permission"
    # What should happen when this requirement isn't met?
    deny-actions:
      - "[message] You do not have permission to open this menu."

# What should we run when the menu opens? 
# (Optional, can be deleted)
open-actions:
  - "[sound] entity.villager.yes"

# What should we run when the menu gets closed?
# (Optional, can be deleted)
close-actions:
  - "[sound] entity.villager.no"

# Default item to fill the GUI with
# (Optional, can be deleted)
filler:
  material: black_stained_glass_pane
  hide-tooltip: true

# These are the items for the gui.
# For more info, see Item config and Requirement pages
items:
  test:
    # Higher priority means if both items are visible on the same slot, this will win
    priority: 1
    # When periodic refresh is enabled only those items will be refreshed
    # that has refresh: true
    refresh: true
    material: diamond
    name: "&6Test Item"
    lore:
      - "&7%server_time_hh:mm:ss%"
    slot: 13
    on-click:
      - "[open-gui] aaa"
    view-requirements:
      - "![permission] example.permission"
  test2:
    priority: 0
    material: emerald
    name: "&6Test Item {arg_test}"
    lore:
      - "&7This is a test item."
    slot: 13
    on-click:
      - "[console] say Hello world {arg_test}!"
      - "[permission] example.permission"
    click-requirements:
      - requirement: "[arg] test == example"
        deny-actions:
          - "[message] test arg is not example! It is {arg_test}"

Opening a menu

You can open a menu/gui either by the defined register-commands or via the /aurora gui open <player> <menu> [...args]command.

/aurora gui open <player> <menu> arg1={some value} test={10}

If you are trying to open the menu from another menu, you can use the [open-gui] action.

[open-gui] menu_id arg1={some value} test={10}

As you have seen above, you can pass arguments to menus. You can reference these arugments anywhere by using this syntax: {arg_key}. So for the above example: {arg_test}. You can also use these in requirements to control menu item visibility or click requirements.

Actions

For the possible click/open/close actions please see Command dispatcher.

Everywhere you see on-click you can also define an on-left-click and on-right-click as well.

Requirements

You can view the available view/open/click requirements here: Requirements.

Everywhere you see click-requirements you can define left-click-requirements and right-click-requirements as well.

Last updated