> For the complete documentation index, see [llms.txt](https://realisticnode.gitbook.io/rnsetups/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://realisticnode.gitbook.io/rnsetups/es/rnpsmenu/configuration/menus.md).

# Menús

Cambia la distribución, los ítems y los sonidos de cada menú en menus.yml.

`menus.yml` define cómo se ve cada menú. Los textos (títulos, nombres, lore) están en los [archivos de idioma](/rnsetups/es/rnpsmenu/configuration/languages.md), en `menus.<menu>`.

```yaml
menus:
  main:
    rows: 5
    filler: GRAY_STAINED_GLASS_PANE   # '' = empty slots stay empty
    items:
      owned: {slot: 19, material: GRASS_BLOCK}
      shop: {slot: 23, material: EMERALD, model: 0}
      admin: {slot: 36, material: COMMAND_BLOCK, enabled: false}
  regions:
    rows: 6
    content: 10-16, 19-25, 28-34, 37-43   # slots for the list
```

* `slot`: 0 es el slot de arriba a la izquierda, 8 el de arriba a la derecha, 9 el primer slot de la segunda fila, y así.
* `material`: cualquier ítem. Los botones que muestran algo concreto (bloques de región, cabezas de jugadores) mantienen su propio ítem.
* `model`: custom model data para resource packs.
* `enabled: false` quita un botón.
* `content`: los slots que usan las listas (regiones, jugadores, flags...). Las listas tienen todas las páginas que necesiten.

Un slot fuera del menú se avisa en la consola y se usa el slot por defecto.

Los sonidos de clics, errores, aciertos y cambios de página están al principio del archivo (`sounds`), y se pueden apagar con `open.sounds: false` en `config.yml`.

## Tus propios botones

Añade botones que ejecutan comandos en `custom` de cualquier menú:

```yaml
menus:
  main:
    custom:
      spawn:
        slot: 44
        material: COMPASS
        name: '<green><bold>Spawn'
        lore: ['<gray>Volver al spawn']
        permission: ''
        actions:
          - '[player] spawn'
          - '[sound] minecraft:entity.experience_orb.pickup'
          - '[close]'
        right-click-actions: []
```

| Clave                 | Qué hace                                                                                                                                                      |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `slot`                | Dónde va. Un botón propio nunca tapa un botón del plugin: apaga ese botón (`enabled: false`) para liberar su slot. Evita los slots de `content` de las listas |
| `material`, `model`   | Ítem y custom model data                                                                                                                                      |
| `name`, `lore`        | Textos (MiniMessage o códigos `&`). Pueden usar `{player}`, placeholders de PlaceholderAPI y, en los menús de una región, `{region}` e `{id}`                 |
| `permission`          | Necesario para verlo y usarlo (`''` = todos)                                                                                                                  |
| `actions`             | Lo que hace un clic, en orden                                                                                                                                 |
| `right-click-actions` | Opcional: lo que hace un clic derecho en su lugar                                                                                                             |

| Acción                | Qué hace                                                                                                                                                       |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `[player] <comando>`  | Ejecuta un comando como el jugador                                                                                                                             |
| `[console] <comando>` | Ejecuta un comando como la consola                                                                                                                             |
| `[message] <texto>`   | Envía un mensaje al jugador                                                                                                                                    |
| `[menu] <menú>`       | Abre un menú de rnPsMenu, como escribir `/psmenu <menú>`: `main`, `regions`, `shared`, `homes`, `here`, `shop`, `market` (se aplican los permisos del jugador) |
| `[sound] <sonido>`    | Reproduce un sonido (`minecraft:...`)                                                                                                                          |
| `[close]`             | Cierra el menú                                                                                                                                                 |
| `[back]`              | Vuelve al menú anterior                                                                                                                                        |

Placeholders en los comandos: `{player}`, `{uuid}`, `{world}`, y en los menús de una región (región, flags, miembros, baneos...) también `{region}`, `{id}` y `{region-world}`. Los placeholders de PlaceholderAPI también funcionan si los escribes en `menus.yml` (los textos que eligen los jugadores, como los nombres de región, nunca se leen como placeholders).

{% hint style="warning" %}
En los comandos `[console]`, los valores de `{player}`, `{region}`, los placeholders de PlaceholderAPI y los demás solo conservan letras, números y `_ . : -`; cualquier otro carácter se convierte en `_`. Así un nombre de región no puede añadir palabras a un comando que ejecuta la consola.
{% endhint %}

Un botón propio con un slot fuera del menú se avisa en la consola y no se muestra.
