Cabezas de jugador por nombre de usuario: cómo funciona el componente de perfil y por qué las cabezas aparecen en blanco
Una cabeza almacena una instantánea de la skin, no un enlace en vivo. Aquí te explicamos el componente de perfil, por qué una cabeza antigua muestra la skin incorrecta y cómo encaja la búsqueda por UUID.
Dar una Cabeza de jugador parece que debería ser un solo argumento. Lo es, pero lo que se almacena no es lo que la gente espera, y eso explica la mayoría de las rarezas relacionadas con las cabezas.
El comando
/give @p player_head[profile="Notch"]
El componente profile reemplazó al antiguo NBT SkullOwner. Los fragmentos que usan {SkullOwner:"Notch"} son anteriores a la versión 1.20.5 y ahora no hacen nada.
Lo que realmente se almacena
Una cabeza no almacena un nombre de usuario y luego busca la skin. Cuando se crea la cabeza, el servidor resuelve el nombre a un UUID y una instantánea de textura, y la incorpora al objeto:
"profile": {
"name": "Notch",
"id": [I; …],
"properties": [{ "name": "textures", "value": "<base64>" }]
}
Dos consecuencias:
- Una cabeza hecha hace un año muestra la skin de ese año. El Jugador Cambiante de su skin no actualiza las cabezas que ya están en el mundo. Esto no es un error y no hay una actualización.
- Las cabezas funcionan sin conexión. Una vez incorporadas, no se necesita ninguna Llamada a la API de Mojang para renderizarlas, por lo que las cabezas sobreviven en servidores en modo sin conexión, mientras que
/give ... profile="Name"no se resuelve allí.
Por qué una cabeza está en blanco o muestra a Steve
En orden de probabilidad:
- El nombre no se resolvió. Servidor en modo sin conexión, o la API no estaba disponible cuando se ejecutó el comando. No hay nada que incorporar, por lo que obtienes un valor predeterminado.
- El nombre no existe. Mojang no devuelve nada para cuentas eliminadas o nunca registradas.
- El chunk no se recargó. La cabeza se resuelve asincrónicamente; ocasionalmente necesitas mirar hacia otro lado y volver a mirar.
Esperar rara vez ayuda: si el perfil no se incorporó en la creación, permanece vacío. Vuelve a dar la cabeza.
Las cabezas personalizadas usan la textura, no un nombre
Las cabezas decorativas —muebles, comida, cabezas de mobs de catálogos— no tienen propietario. Solo llevan el valor de textura properties con un blob base64 que apunta a una URL de textura. Por eso se pueden compartir como un único comando de dar largo y por eso nunca se rompen cuando un Jugador Cambiante de nombre.
El base64 se decodifica a un pequeño JSON que contiene un textures.SKIN.url en textures.minecraft.net. Nada más en él importa para la renderización.
Formatos de UUID
Existen dos formas y no son intercambiables en todos los contextos:
trimmed 069a79f444e94726a5befca90e38aaf5
dashed 069a79f4-44e9-4726-a5be-fca90e38aaf5
Los comandos y el NBT generalmente quieren la forma con guiones o un array de enteros. Las API web suelen devolver la forma recortada. La conversión entre ellas es mecánica: inserta guiones después de 8, 12, 16 y 20 caracteres.
Da una cabeza a partir de un nombre de usuario, explora catálogos de cabezas decorativas o convierte entre formatos UUID en las Herramientas de Cabeza de jugador y Nombre de usuario.