CustomNick Plugin de Paper 1.21.x para cambiar el nombre visible de los jugadores con soporte de colores legacy, hex y MiniMessage.
Características Cambio de nick en chat, tab-list y display name Persistencia en nicks.yml (UUID → nick) Soporte de tres formatos de color Integración con PlaceholderAPI Configuración completa en config.yml Recarga en caliente sin reiniciar el servidor Requisitos Requisito Versión Java 21+ Paper 1.21.x PlaceholderAPI 2.11+ (opcional) Compilación mvn clean package
Copia el jar generado a la carpeta plugins/ de tu servidor.
Comandos Comando Descripción Permiso /nick Cambia tu nick visible customnick.use /nick reset Restaura tu nombre original customnick.use /nick set Cambia el nick de otro jugador customnick.admin /nick reset Resetea el nick de otro jugador customnick.admin /nick reload Recarga config.yml en caliente customnick.admin Alias del comando: /nickname
Permisos Permiso Default Descripción customnick.use op Usar /nick para cambiar el propio nick customnick.color op Usar códigos de color legacy (&a, &#FF0000) customnick.minimessage op Usar tags MiniMessage (gradient:..., ) customnick.admin op Gestionar nicks de otros jugadores y recargar config Formatos de color El formato se detecta automáticamente. Si el nick contiene < se interpreta como MiniMessage, en caso contrario como legacy.
Legacy básico /nick &aHeroName /nick &c&lAdmin /nick &eGuest&r Legacy hex /nick &#FF4400Steve /nick �AAFFCool&#FFFFFFName MiniMessage /nick Hero /nick gradient:red:blueRainbow /nick Colorido /nick <#FF0000>Admin Tags MiniMessage permitidos: color, decorations, gradient, rainbow, reset Tags bloqueados (por seguridad): click, hover, insertion, font y similares.
Configuración — config.yml nick:
min-length: 3
max-length: 16
colors:
legacy-enabled: true
minimessage-enabled: true Para aplicar cambios sin reiniciar: /nick reload
PlaceholderAPI Si PlaceholderAPI está instalado los siguientes placeholders se registran automáticamente:
Placeholder Descripción %customnick_nick% Nick con §-colores listo para usar en LPC, TAB, etc. %customnick_nick_raw% Nick tal como está guardado (&-códigos o MiniMessage) %customnick_hasNick% true si el jugador tiene nick personalizado, false si no Ejemplo con LPC format: "<%customnick_nick%> {message}" Ejemplo con TAB tablist-name: "%customnick_nick%" nametag: prefix: "%customnick_nick% " Almacenamiento Los nicks se guardan en plugins/CustomNick/nicks.yml:
nicks: 550e8400-e29b-41d4-a716-446655440000: "&aHeroName" 6ba7b810-9dad-11d1-80b4-00c04fd430c8: "gradient:red:blueAdmin" El archivo se actualiza automáticamente en cada cambio y al apagar el servidor.
Estructura del proyecto src/main/ ├── java/com/tuservidor/customnick/ │ ├── CustomNick.java # Clase principal │ ├── config/ │ │ └── ConfigManager.java # Lectura y caché de config.yml │ ├── command/ │ │ └── NickCommand.java # /nick y tab completer │ ├── listener/ │ │ └── PlayerJoinListener.java # Restaura nick al conectarse │ ├── manager/ │ │ └── NickManager.java # Lógica de validación y aplicación │ ├── placeholder/ │ │ └── CustomNickExpansion.java # Expansión de PlaceholderAPI │ └── storage/ │ └── NickStorage.java # Persistencia YAML └── resources/ ├── plugin.yml └── config.yml