WHSTags
Tags visuales que se sincronizan en todas las modalidades de tu servidor.
¿Qué es WHSTags?
WHSTags es un sistema de tags para servidores Minecraft con múltiples modalidades. Permite crear tags visuales que los jugadores pueden equiparse y que se muestran en el chat, tab, holograms u otros plugins. Los tags se sincronizan automáticamente entre todas las modalidades del servidor a través de una base de datos MySQL compartida.
Configuración inicial
config.yml
mode: lobby # lobby | client server-id: lobby # identificador único de esta modalidad gui-mode: self # self | legacy language: es # es | en | fr | de | pt
| Campo | Descripción |
|---|---|
mode |
lobby — crea y gestiona los tags. client — recibe los tags desde la DB. |
server-id |
Nombre único de esta modalidad (ej: lobby, survival-op, earth). Cada modalidad debe tener uno diferente. |
gui-mode |
self — usa sus propios menús locales. legacy — descarga los menús del lobby. |
language |
Idioma de los mensajes. es para español, en para inglés. |
Modos de operación
Lobby (mode: lobby)
├── Crea y elimina tags
├── Sube tags a MySQL
└── Puede subir sus menús con /whstags admin upload
Cliente (mode: client)
├── Lee los tags desde MySQL
├── Guarda el tag activo de cada jugador por modalidad
└── gui-mode: legacy → descarga los menús del lobby
gui-mode: self → usa sus propios menús locales
Comandos
| Comando | Descripción | Permiso |
|---|---|---|
/whstags |
Abre el menú de tags | whstags.use |
/whstags set <id> |
Equipa un tag directamente | whstags.use |
/whstags remove |
Quita el tag activo | whstags.use |
/whstags admin list |
Abre el menú admin con todos los tags | whstags.admin.list |
/whstags admin create <id> <display> |
Crea un nuevo tag | whstags.admin.create |
/whstags admin delete <id> |
Elimina un tag | whstags.admin.delete |
/whstags admin reload |
Recarga config, idioma y tags desde DB | whstags.admin.reload |
/whstags admin upload |
Sube los menús locales a MySQL | whstags.admin.upload |
/whstags admin download |
Descarga los menús desde MySQL | whstags.admin.download |
/whstags admin purge |
Elimina todos los tags existentes. Requiere escribir confirm en el chat en un plazo de 30 s. | whstags.admin.purge |
/whstags admin fixperms |
Corrige permisos bugueados tras cambios de id de tags | whstags.admin.fixperms |
/whstags admin extract |
Exporta todos los tags de la DB a un archivo YML | whstags.admin.extract |
/tag, /tags
Permisos
| Permiso | Descripción | Default |
|---|---|---|
whstags.use |
Abrir el menú y equipar tags | true |
whstags.<id> |
Permiso para usar un tag específico (ej: whstags.vip) |
op |
whstags.admin.list |
Ver todos los tags en el menú admin | op |
whstags.admin.create |
Crear tags (solo lobby) | op |
whstags.admin.delete |
Eliminar tags (solo lobby) | op |
whstags.admin.reload |
Recargar el plugin | op |
whstags.admin.upload |
Subir menús a MySQL (solo lobby) | op |
whstags.admin.download |
Descargar menús desde MySQL (solo legacy) | op |
whstags.admin.purge |
Eliminar todos los tags (solo lobby) | op |
whstags.admin.fixperms |
Corregir permisos tras cambios de id | op |
whstags.admin.extract |
Exportar los tags a un archivo YML (solo lobby) | op |
Gestión de Tags
Crear un tag
/whstags admin create <id> <display>
id
Identificador interno, solo letras, números, - y _ (máx. 32 caracteres)
display
Nombre visual, acepta colores MiniMessage, HEX y códigos &
Ejemplos
/whstags admin create vip <gold>VIP /whstags admin create mvp <gradient:#FFD700:#FF6B00>MVP</gradient> /whstags admin create admin <red><bold>ADMIN /whstags admin create pvp ⚔ <red>PvP God
Editar el id de un tag
En el menú de /whstags admin list, hacé clic derecho sobre un tag para cambiar su id. El plugin te pedirá que escribas el nuevo id en el chat; tenés 30 segundos para hacerlo. Tras un cambio de id, ejecutá /whstags admin fixperms para corregir permisos que hayan quedado desactualizados.
Dar permiso a un jugador (LuckPerms)
/lp user <jugador> permission set whstags.<id> true
Dar permiso a un grupo (LuckPerms)
/lp group <grupo> permission set whstags.<id> true
Formato del archivo exportado
El comando /whstags admin extract genera un archivo YML en la carpeta del plugin con todos los tags de la base de datos. El nombre del archivo incluye la fecha de extracción.
plugins/WHSTags/tags-export-{AAAAMMDD}.yml
# WHSTags Export — 2026-05-26 15:04:47
# Total: 7 tags
tags:
vip:
display: "<gold>VIP"
permission: whstags.vip
mvp:
display: "<gradient:#FFD700:#FF6B00>MVP</gradient>"
permission: whstags.mvp
admin:
display: "<red><bold>ADMIN"
permission: whstags.admin
Sincronización entre modalidades
Flujo de tags
Lobby crea tag → guarda en MySQL → clientes leen al conectarse jugadores
Los clientes cargan el tag activo de cada jugador al conectarse. El tag se guarda por jugador y por modalidad, por lo que un jugador puede tener un tag diferente en cada modalidad.
Flujo de menús (gui-mode: legacy)
1. Lobby configura sus menús localmente 2. /whstags admin upload → sube menu.yml y categorías a MySQL 3. En los clientes: /whstags admin download → descarga y sobreescribe los archivos locales
gui-layout: Diseño del menú
Controla qué carpeta usa el plugin como menú principal. Acepta dos valores:
| Valor | Descripción |
|---|---|
default |
Comportamiento normal. El plugin usa la carpeta gui/ como siempre. |
hub |
El plugin usa una segunda carpeta gui_hub/ como menú principal. Tiene su propio menu.yml y categories/, pero puede referenciar archivos de gui/categories/ sin duplicarlos. Si un archivo no existe en gui_hub/categories/, el plugin lo busca automáticamente en gui/categories/. |
gui_hub/ es completamente local — nunca se sube ni se descarga con /whstags admin upload o download. Esos comandos solo afectan a gui/.
¿Para qué sirve?
Es útil cuando querés un menú principal que agrupe las modalidades del servidor (Modalidad 1, Modalidad 2, Modalidad 3) y que al hacer clic en cada una muestre sus propias categorías de tags, todo sin modificar la configuración base de gui/.
Estructura con gui-layout: hub
plugins/WHSTags/
gui/
menu.yml
categories/
pvp.yml
paises.yml
clanes.yml
gui_hub/
menu.yml ← menú principal con botones por modalidad
categories/
earth.yml ← puede referenciar pvp.yml de gui/categories/
survival-op.yml
survival-pvp.yml
PlaceholderAPI
Requiere PlaceholderAPI instalado. Se registra automáticamente al iniciar el servidor.
| Placeholder | Retorna | Ejemplo |
|---|---|---|
%whstags_tag% |
Display del tag con colores | <gold>VIP |
%whstags_tag_plain% |
Display sin colores | VIP |
%whstags_tag_id% |
ID interno del tag | vip |
%whstags_has_tag% |
Si el jugador tiene tag activo | true / false |
Uso en otros plugins
# Chat (EssentialsX, CMI, etc.)
{%whstags_tag%} %player_name%: %message%
# TAB
%whstags_tag_plain% | %player_name%
# DecentHolograms
{papi: %whstags_tag%}
{papi: %player_name%}
# Condición (si tiene tag)
%whstags_has_tag% == true
Compatibilidad Bedrock
El plugin detecta automáticamente jugadores de Bedrock via Geyser/Floodgate si están instalados. No requiere configuración adicional.
Base de datos
Por defecto el plugin usa H2 embebida. No requiere instalar ni configurar ninguna base de datos externa; las tablas se crean solas al iniciar.
Para sincronizar tags y menús entre modalidades (mode: lobby + client), configurá MySQL en config.yml. La base de datos whs_tags debe existir antes de iniciar el plugin.
| Tabla | Contenido |
|---|---|
whs_tags |
Todos los tags creados (id, display) |
whs_player_tags |
Tag activo de cada jugador por modalidad |
whs_gui_config |
Archivos YML de menús subidos desde el lobby |
Las tablas se crean automáticamente al iniciar el plugin, tanto en H2 como en MySQL.
MySQL
CREATE DATABASE whs_tags CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;