Menu
The biggest unit which serves as an interface the user can interact & do actions with.
The biggest unit which serves as an interface the user can interact & do actions with.
menu-settings
and Buttonmenu-type
value in the menu-settings
sectionmenu-settings:
name: '&c&lExample Menu'
rows: 6
command: menu
auto-refresh: 5
open-action:
- "tell: &eYou opened the example menu"
close-action:
- "tell: &cYou closed the example menu"
# Buttons
spawn-cmd:
COMMAND: 'spawn'
NAME: '&u/spawn'
LORE:
- 'It just executes /spawn'
- 'as the player who clicked.'
ID: ender_pearl
POSITION-X: 1
POSITION-Y: 2
This is the default menu type of BetterGUI, represents a chest-like GUI.
menu-settings:
menu-type: simple # You don't need to set this type. It's the default value
# The actions when the player opens the menu
open-action:
- action
- action
- action
...
# The actions when the player closes the menu
close-action:
- action
- action
- action
...
# The type of the display inventory
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/inventory/InventoryType.html
inventory-type: <inventory-type>
#inventory: <inventory-type>
# The rows <1-6> of the inventory if the type is CHEST
rows: <1-6>
# How frequently the menu will refresh itself
auto-refresh: <ticks>
#ticks: <ticks>
# The requirement before the player can open the menu
view-requirement:
<requirement-set>
<requirement-set>
<requirement-set>
...
# The requirement before the player can close the menu
close-requirement:
<requirement-set>
<requirement-set>
<requirement-set>
...
# The permission required to open the menu
permission: bettergui.test
# The command to open the menu
command:
- command1
- command2
...
# The title of the inventory
title: <name>
#name: <name>
# Save the display to the cache for later use
# This option is mainly used to fix a "self-open" issue when the player open the same menu
cached: <true/false>
# The creator to create the inventory. Mainly used to create custom inventories provided by addons.
creator: default
# The list of argument processors to process the arguments of the command to open the menu
argument-processor:
- <argument-processor>
- <argument-processor>
# The delay in milliseconds that a player can click the buttons of the menu
click-delay: <millis>
# This is a special button. It will fill all empty slots of the inventory (You don't need to set this button)
default-button:
<button-settings>
button1:
<button-settings>
button2:
<button-settings>
...
open-action
: the Action when the menu is opened.close-action
: the Action when the menu is closed.view-requirement
: the Requirement to check before opening the menu. If it is not met, the menu will not be opened.close-requirement
: the Requirement to check before closing the menu. If it is not met, the menu will not be closed.argument-processor
: the Argument Processor to handle the arguments of the command to open the menu.menu-settings:
name: '&c&lExample Menu'
rows: 6
command: menu
auto-refresh: 5
open-action:
- "tell: &eYou opened the example menu"
close-action:
- "tell: &cYou closed the example menu"
default-icon:
type: animated
child:
frame1:
id:
- RED_STAINED_GLASS_PANE
- STAINED_GLASS_PANE:14
frame2:
id:
- GREEN_STAINED_GLASS_PANE
- STAINED_GLASS_PANE:13
frame3:
id:
- BLUE_STAINED_GLASS_PANE
- STAINED_GLASS_PANE:11
# Buttons
spawn-cmd:
COMMAND: 'spawn'
NAME: '&u/spawn'
LORE:
- 'It just executes /spawn'
- 'as the player who clicked.'
ID: ender_pearl
POSITION-X: 1
POSITION-Y: 2
durability-armor:
NAME: '&aDamaged armor'
LORE:
- 'This armor is damaged.'
ID: diamond helmet
DAMAGE: 100
POSITION-X: 2
POSITION-Y: 2
menu-settings:
menu-type: addon
# The name of the menu
name: '&c&lAddon Downloader'
# The rows of the menu
rows: 3
# The command to open the menu
command:
- addondownloader
- addondl
# The period in ticks to refresh the menu
auto-refresh: 5
# The button for each addon
button:
material:
- LIGHT_BLUE_STAINED_GLASS_PANE
- STAINED_GLASS_PANE:3
name: "&f{name} &c- &4{status}"
lore:
- "&f{description}"
- "&fAuthors: &e{author}"
- "&fVersion: &e{version}"
- ""
- "&bLeft click &fto download"
- "&bRight click &fto get the source code"
- "&bMiddle click &fto see the wiki"
This is an arbitrary menu that serves as a switch that you can add some Menus and some Requirements for each Menu to check before opening one of them.
menu-settings:
menu-type: predicate
permission: bettergui.test
command:
- command1
- command2
...
argument-processor:
- <argument-processor>
- <argument-processor>
menu-name1:
menu: <menu-file>
argument: <args>
requirement:
<requirement-set>
<requirement-set>
<requirement-set>
...
menu-name2:
menu: <menu-file>
argument: <args>
requirement:
<requirement-set>
<requirement-set>
<requirement-set>
...
menu-settings
permission
: the required permission to open the menu.command
: the commands to open the menu.argument-processor
: the Argument Processor to handle the arguments of the command to open the menu.menu-name1
, menu-name2
, etc.
menu
: the file of the menu to open,argument
: the argument to pass when opening the menu. It’s optionalrequirement
: the Requirement to check before opening the menu. If it’s not set, the plugin will assume that the menu can always be opened.The plugin will check the requirement of each menus in the top-down order of the config. If it found a menu whose requirements are met, it would open that menu. Otherwise, nothing happened.
# level-predicate.yml
menu-settings:
menu-type: predicate
command: level
level-5:
menu: level-5.yml
requirement:
check-level:
level:
value: 5
take: false
level-2:
menu: level-2.yml
requirement:
check-level:
level:
value: 2
take: false
level-0:
menu: level-0.yml
# level-5.yml
menu-settings:
title: "&aYou reached level 5!"
# level-2.yml
menu-settings:
title: "&aYou reached level 2!"
# level-0.yml
menu-settings:
title: "&cYou don't have enough levels!"