Configuring
Menus
/homes, /warps, /kits, /restore and /kitedit open a clickable screen rather than
printing a line of names.
There are two files behind them. What the screen is made of is in the module file; what
the screen says is in menus.yml.
The shape of a screen#
# modules/homes.yml
homes:
menu:
enabled: true
rows: 3
icon: LIME_BED
filler: ''
navigation-filler: GRAY_STAINED_GLASS_PANE
previous-page: ARROW
next-page: ARROW
close: BARRIER| Key | What it does |
|---|---|
enabled |
false goes back to the written list. |
rows |
2 to 6. The bottom row is always navigation, so 3 rows shows 18 entries a page. |
icon |
The item each entry is shown as. Homes can override it per home with /homeicon; warps with /warpset <warp> icon. |
filler |
Fills the empty part of the content area. Empty for a plain window. |
navigation-filler |
Fills the bottom row around the buttons, to set it apart. |
previous-page / next-page / close |
The three buttons. |
Because the bottom row is always navigation, nothing ever moves under the cursor between pages. That is worth keeping if you change the rows.
The same block appears in modules/warps.yml (icon ENDER_PEARL), modules/kits.yml (icon
CHEST) and modules/items.yml under backups.menu (six rows, no icon setting — each entry
is the head of whoever it belongs to).
What the screen says#
menus.yml has a block per screen, so the homes grid and the warps grid can say entirely
different things.
menu:
buttons: # the navigation strip, shared by every paged screen
previous: '<color:#c9a227>« Previous'
next: '<color:#c9a227>Next »'
close: '<color:#b03a3a>✖ Close'
back: '<color:#c9a227>« Back'
homes:
title: '» YOUR HOMES « %page%/%pages%'
entry: '%home%'
lore-world: '<dark_gray>▪ <gray>World <dark_gray>» <white>%world%'
lore-position: '<dark_gray>▪ <gray>Position <dark_gray>» <white>%x%, %y%, %z%'
lore-created: '<dark_gray>▪ <gray>Made <dark_gray>» <white>%date%'
lore-action: '<color:#3f9e4d>➜ <gray>Click to teleport'The blocks:
| Block | Screen |
|---|---|
menu.buttons |
The navigation strip on every paged screen |
menu.homes |
/homes |
menu.warps |
/warps, including the sections screen |
menu.kits |
/kits |
menu.backups |
/restore, the list and the laid-out inventory |
menu.shops |
The four lines a chest shop sign shows |
menu.titles |
/trash, /invsee, /ecsee |
menu.editor |
The whole of /kitedit, chat prompts included |
Anything starting with menu. is in menus.yml. Everything else is in messages.yml.
Colours work exactly as they do in messages — see
Messages and colours. <newline> inside a lore line makes it several
lines, which is how the long explanatory tooltips in /restore are written.
Warp sections#
/warps opens a screen of sections when any warp has one, and the warps inside a section
one click further in. A warp with no section lands in a group named by
menu.warps.section-loose, which ships as Other.
/warpset shop section Towns
/warpset pvp section EventsThat is how twenty warps stay readable. With no sections set, /warps is a single paged grid.
The chest shop sign#
The four lines a [Shop] sign shows once it is made are in menu.shops:
shops:
sign-owner: '<color:#1f7a3f>%player%'
sign-selling: '<color:#1a1a1a>Selling <color:#333333>%amount%'
sign-buying: '<color:#1a1a1a>Buying <color:#333333>%amount%'
sign-item: '<color:#333333>%item%'
sign-price: '<color:#8a5a1f>%price% <color:#1a1a1a>each'Changing these and running /chorus reload does not rewrite the signs already standing; each
one rewrites itself the next time its chunk loads.
The kit editor#
menu.editor holds both halves of /kitedit: the buttons on the screen and the questions it
asks in chat.
ask-cooldown: '%prefix%<gray>Type the wait for <white>%kit%</white>, in seconds.'
icon: '<color:#c9a227>✎ Icon'
icon-lore: '<dark_gray>▪ <gray>Now <dark_gray>» <white>%icon%'Which item each button is made of is in modules/kits.yml under kits.editor — see
Kits.
Screens that are not configurable#
/invsee, /ecsee and /trash are the player's own inventory laid out, so there is nothing
to theme but the title (menu.titles) and, for /invsee, the filler
(utility.invsee.filler).
