Guía
Cómo crear un plugin de menús GUI para Minecraft
Actualizado el 18 de octubre de 2026
Los menús del servidor (warps, tiendas, kits, ajustes) son inventarios de cofre que el plugin abre y controla. Cada casilla contiene un objeto que funciona como botón. Parecen sencillos, pero un menú que no cancela todos los tipos de clic deja que los jugadores se lleven los botones. Esta guía explica cómo funcionan los menús y cómo conseguir uno compilado y probado.
Empieza con este ejemplo.
Genera esto con CodexePaso a paso
1.Haz un boceto del menú
Un menú de cofre tiene de 1 a 6 filas de 9 casillas (de 9 a 54). Escribe qué objeto va en cada casilla, qué hace cada clic y qué casillas son solo decoración, como los paneles de cristal.
2.Crea el inventario con un holder
Ábrelo con
Bukkit.createInventory(holder, size, title), usando tu propia claseInventoryHolder. El holder es lo que permite al plugin saber que un clic ocurrió en su menú y no en un cofre normal.3.Gestiona los clics
En
InventoryClickEvent, comprueba el holder, cancela el evento y ejecuta la acción de esa casilla. Cierra o actualiza el menú después de la acción.4.Bloquea cualquier otra forma de mover objetos
Cancela también
InventoryDragEventy gestiona los clics con Mayús, las teclas numéricas y los clics en el inventario del propio jugador mientras el menú está abierto.5.Añade páginas si la lista es larga
Para warps u objetos de tienda que no caben, reserva la fila inferior para los botones de anterior, siguiente y cerrar.
6.Ábrelo con un comando
Por ejemplo
/warps, o desde un objeto o un NPC. Ponle un permiso al comando si el menú no es para todos.7.Compílalo y recórrelo con clics
Deja que Codexe compile el plugin, entra al servidor de prueba y haz clic en cada botón. Los jugadores de prueba también pueden abrir el menú y hacer clic en las casillas por ti.
Las reglas que hacen seguro un menú
- Identifica el menú por su holder, nunca por su título: cualquier cofre renombrado puede copiar un título.
- Cancela el clic antes de hacer cualquier otra cosa, para que un error en la acción nunca deje el objeto en el cursor del jugador.
- Cancela los arrastres y los clics con Mayús desde el inventario del jugador, o se podrán meter objetos en el menú.
- No te fíes del objeto de la casilla: busca la acción por el número de casilla o por una etiqueta del objeto.
- Ejecuta el trabajo lento (lecturas de base de datos, peticiones web) fuera del hilo principal y actualiza el menú cuando termine.
Menús desde la configuración
A los dueños de servidores les gusta cambiar los menús sin una nueva compilación. Pide que cada menú se defina en un archivo de configuración, con el tamaño, el título y, para cada botón, la casilla, el material, el nombre, la descripción y la acción:
| Clave | Ejemplo | Qué hace |
|---|---|---|
size | 27 | Número de casillas, múltiplo de 9 |
slot | 13 | Dónde va el botón, contando desde 0 |
material | ENDER_PEARL | El objeto que se muestra |
action | warp:spawn | Qué hace un clic: un warp, un comando, otro menú |
Descripción de ejemplo
«Un plugin para Paper 1.21.4 llamado WarpMenu. /warps abre un menú de 6 filas con un botón por warp, 45 por página, con botones de anterior, siguiente y cerrar en la fila inferior. Los administradores añaden warps con /setwarp <name> <material> y los quitan con /delwarp. Al hacer clic en un warp, teletransporta tras una espera de 3 segundos que se cancela si el jugador se mueve. Los jugadores no pueden coger ni mover ningún objeto del menú. Warps guardados en warps.yml; título del menú, nombres de los botones y mensajes en config.yml.»
Probar menús con jugadores de prueba
Los jugadores de prueba de Codexe pueden abrir un menú y hacer clic en una casilla, y luego comprobar que se abrió un menú, apareció un mensaje o se entregó un objeto. Añade una prueba con tus palabras, como «un jugador normal ejecuta /warps, hace clic en la casilla 0 y ve el mensaje de teletransporte», y se vuelve a ejecutar cada vez que Codexe entrega un cambio.
Preguntas
¿Funciona en la 1.8?
Los menús de cofre existen en todas las versiones desde la 1.8. La API cambia en algunos detalles (nombres de materiales, títulos), así que indica la versión en la petición.
¿Puedo hacer menús con Skript?
Sí, con el complemento skript-gui, que el servidor de prueba de Skript de Codexe tiene instalado. Un plugin es mejor para menús grandes o con mucho uso.
¿Puede un menú tener una textura personalizada?
Solo con un paquete de recursos que cambie los objetos o el fondo del inventario. La parte del plugin es la misma: casillas, objetos y clics.
Crea tu menú
Este prompt se abre listo para enviar:
“Un plugin para Paper 1.21.4 llamado WarpMenu: /warps abre un menú de 6 filas con un botón por warp, 45 por página, botones de anterior/siguiente/cerrar en la fila inferior, /setwarp con un nombre y un material y /delwarp para administradores, espera de teletransporte de 3 segundos que se cancela al moverse, no se puede coger ni mover ningún objeto, warps guardados en warps.yml, títulos y mensajes en config.yml.”
Genera esto con Codexe