MC Toolkit

Guías / Servidores y rendimiento

server-icon.png: los requisitos exactos y la API de gestión que nadie usa

64x64, PNG, en la raíz del servidor: si fallas en cualquiera de los tres, el icono no aparece y no hay aviso. Además, la API de gestión JSON-RPC que sustituyó al scraping de la consola.

El icono del servidor es la función pequeña menos indulgente de Minecraft, porque todos los modos de fallo son idénticos: sin icono, sin error.

Tres requisitos, todos obligatorios

  1. Exactamente 64×64 píxeles. Ni 63, ni 128. El servidor no redimensiona.
  2. Formato PNG. PNG de verdad, no un JPG renombrado.
  3. Llamado server-icon.png, en la raíz del servidor — junto a server.properties, no dentro de la carpeta del mundo.

Si fallas en cualquiera de ellos, el servidor arranca con normalidad y muestra el icono predeterminado. Un tamaño incorrecto o un archivo que no es realmente un PNG sí registran una línea al arrancar — Couldn't load server icon —, pero un archivo mal nombrado o mal ubicado no registra nada. (Sin ningún server-icon.png, el servidor recurre al icon.png del propio mundo si existe.)

Cosas que también lo rompen

  • PNG entrelazado. Algunos editores guardan entrelazado por defecto; el lector de Minecraft lo rechaza. Vuelve a exportar sin entrelazar.
  • Profundidad de color de 16 bits. Guarda como 8 bits por canal.
  • Perfiles de color. Un perfil ICC incrustado a veces hace tropezar al analizador. Elimina los metadatos al exportar.
  • La transparencia no es problema y se renderiza correctamente en la lista de servidores.

El servidor lo lee una sola vez

El servidor carga server-icon.png al arrancar y nunca más. Reemplazar el archivo en un servidor en ejecución no cambia nada hasta reiniciarlo, y por eso probar un cambio de icono sin reiniciar te convencerá de que no funcionó. Tras un reinicio, el cliente recoge el nuevo icono en su siguiente actualización de la lista de servidores.

La API de gestión

Las versiones recientes del servidor exponen una interfaz de gestión JSON-RPC, que es el reemplazo oficial de analizar la salida de la consola o añadir un plugin a la fuerza.

Actívala en server.properties:

management-server-enabled=true
management-server-host=localhost
management-server-port=25585
management-server-tls-enabled=false

TLS está activado por defecto y necesita un keystore (management-server-tls-keystore), así que o bien apúntalo a uno o —solo en localhost— desactívalo como arriba; con TLS activado y sin keystore, el servidor de gestión no arranca. El puerto tampoco tiene valor predeterminado (25585 es solo un ejemplo).

Luego abre un WebSocket a ese puerto, enviando el management-server-secret de server.properties como Authorization: Bearer <secret>, y habla JSON-RPC:

{ "jsonrpc": "2.0", "id": 1, "method": "minecraft:players" }

Los métodos cubren la lista de jugadores, el estado del servidor, la lista de permitidos y la de baneados, las gamerules, la configuración y un par guardar/detener. Cada uno devuelve JSON estructurado en lugar de una línea de texto que tienes que procesar con regex.

Vincula la API a localhost

El valor predeterminado es localhost y debería quedarse ahí. La interfaz no está pensada para exponerse a internet: cualquiera que la alcance con el secreto puede detener tu servidor, y el secreto es tan seguro como tu server.properties. Exponla mediante un túnel SSH o un proxy inverso con autenticación si necesitas acceso remoto, nunca cambiando el host a 0.0.0.0.

Por qué importa

Los paneles, los bots de Discord y los monitores de disponibilidad han funcionado históricamente leyendo el registro de la consola o usando RCON, y ambas cosas son frágiles. Una API tipada significa que un widget de recuento de jugadores no se rompe cuando una línea del registro cambia de formato.

Convierte cualquier imagen en un server-icon.png compatible y explora los métodos JSON-RPC en Server Icon & API Tools.

Icono de servidor y API →

Más guías

Ver todas →