Saltar al contenido principal

Integración domótica Minecraft Server, gratuita y de código abierto

Integración Minecraft Server para Gladys Assistant

Servidor Minecraft Java o Bedrock: quién juega, llegadas y salidas, chat por RCON.

Siga su servidor Minecraft desde Gladys: si está en línea, cuántos jugadores hay y quiénes, su versión y su mensaje del día. Gladys puede reaccionar cuando un jugador llega o se va, o cuando el servidor se detiene, y enviar un mensaje al chat del juego («¡A comer!») por RCON. Java Edition y Bedrock Edition, en casa (un NAS, una Raspberry Pi, un PC) o en Internet.

La integración lee el servidor como lo hace la pantalla multijugador del juego (el «Server List Ping»): sin cuenta de Minecraft, sin plugin, nada que instalar en el servidor. Esta integración no tiene relación con Mojang ni Microsoft.

Desarrollada sin el hardware: sus comentarios son bienvenidos. La parte Java Edition se probó con un servidor vanilla 1.21.11 real; la parte Bedrock Edition solo con respuestas documentadas por otros, y todavía no se ha probado nada en un Gladys real. Si algo no funciona como se describe, dígalo en el foro de Gladys o en las issues.

Lo que necesita​

  • Gladys Assistant 5.1.0 o posterior.
  • Un servidor Minecraft accesible desde Gladys: Java Edition 1.7 o posterior (vanilla, Paper, Spigot, Fabric, Forge, un proxy BungeeCord o Velocity…) o Bedrock Edition (Bedrock Dedicated Server, o un servidor con un puerto Bedrock). Un servidor en Internet también funciona: Gladys lo lee directamente.
  • En el server.properties del servidor, enable-status=true (por defecto).
  • Opcional, solo Java Edition: RCON, para la lista completa de jugadores y los mensajes de chat. En server.properties: enable-rcon=true, rcon.password= una contraseña propia, rcon.port=25575 (por defecto). Reinicie el servidor después del cambio.

Configuración​

  1. Instale la integración desde el catálogo de Gladys.
  2. En Configuración, introduzca la Dirección del servidor, como en el juego: 192.168.1.20, mc.example.com, o 192.168.1.20:25570 cuando el puerto no es el predeterminado (Java 25565, Bedrock 19132). Para un nombre Java sin puerto, se usa el registro SRV _minecraft._tcp, como en el juego. Elija la Edición y, si lo desea, un Nombre.
  3. RCON (opcional, Java): marque Usar RCON, introduzca el Puerto RCON y la Contraseña RCON.
  4. Guarde y haga clic en Probar la conexión: el mensaje bajo el botón indica, para cada servidor, si responde, su versión, los jugadores y si RCON funciona.
  5. Abra la pestaña Descubrir: un dispositivo por servidor. Haga clic en Añadir, elija una habitación y guarde.

Hasta tres servidores: rellene las secciones Segundo servidor y Tercer servidor. Otras opciones:

  • Intervalo de actualización: con qué frecuencia se leen los servidores, de 15 segundos a 5 minutos (30 segundos por defecto). Una llegada se detecta como mucho con este retraso. Una petición de estado ocupa unos cientos de bytes: incluso cada 15 segundos, el servidor ni lo nota.
  • Idioma de los nombres de funciones: inglés, francés, alemán o español (francés por defecto). Los nombres se asignan al añadir un dispositivo; el texto de los jugadores y los eventos de escena también lo usan.

El dispositivo de cada servidor​

FunciónQué es
En línea1 cuando el servidor responde, 0 en cuanto no ha respondido dos veces seguidas
Jugadores conectadosCuántos jugadores hay en el servidor
PlazasEl max-players del servidor
JugadoresQuién juega (solo Java Edition), «Nadie», o una nota cuando la lista es parcial u oculta
VersiónLa versión que anuncia el servidor (1.21.11, Paper 1.21.4, Velocity 3.4.0…)
Mensaje del díaEl MOTD, sin sus colores, sus dos líneas unidas por «·»
LatenciaLa duración de la petición de estado, en milisegundos

Un servidor Bedrock Edition nunca dice quién juega: su dispositivo no tiene la función Jugadores, y los disparadores de llegada y salida no se aplican. Cuando el servidor está fuera de línea, En línea y Jugadores conectados pasan a 0, Jugadores lo indica, y la versión y el MOTD conservan su último valor.

Quién juega, en Java Edition: sin RCON, los nombres vienen de la «muestra» de la respuesta de estado. El servidor vanilla pone en ella 12 jugadores como máximo, elegidos al azar; hide-online-players=true la elimina; un jugador que ha desactivado Permitir listados del servidor aparece como «Anonymous Player»; algunos plugins y proxys la sustituyen por texto. El texto Jugadores indica cuándo la lista es parcial («y 3 más») u oculta. Con RCON, la integración pide al servidor su lista completa (el comando list).

Panel​

Añada el widget Minecraft a un panel: para cada servidor (todos, o el elegido en la configuración del widget), una casilla con los jugadores conectados y las plazas, verde cuando el servidor responde, roja cuando está fuera de línea; y una lista con el estado de cada servidor, su versión y quién juega. Con un solo servidor, una segunda casilla muestra la latencia.

Escenas​

La integración añade sus propias tarjetas al editor de escenas (Gladys 5.1 o posterior).

Disparadores​

  • Un jugador se ha unido al servidor Minecraft — filtros: el servidor (vacío: cualquiera) y el nombre del jugador (vacío: cualquiera; exactamente como en el juego, mayúsculas incluidas). Variables: player, server, device, players_online.
  • Un jugador ha salido del servidor Minecraft — mismos filtros. Variables: player, server, device, players_online, minutes_played (el tiempo que se quedó, vacío cuando el jugador ya estaba al arrancar la integración).
  • Servidor Minecraft fuera de línea — el servidor ya no responde, dos veces seguidas (una sola respuesta perdida se ignora). Filtro: el servidor. Variables: server, device, error (el motivo, en el idioma configurado).

Los disparadores de llegada y salida necesitan la lista completa de jugadores: con RCON siempre; sin RCON, solo mientras el servidor muestre 12 jugadores o menos y ningún nombre oculto. Cuando la lista es parcial, no se inventa ninguna llegada ni salida: no se indican. Cuando se detiene todo el servidor, solo se dispara Servidor Minecraft fuera de línea, no una salida por jugador; cuando vuelve, los jugadores que ya estaban no se indican como llegadas.

Acciones​

  • Enviar un mensaje al chat de Minecraft — a un servidor, o a todos los servidores con RCON cuando el campo servidor está vacío. Una línea, 256 caracteres como máximo; el mensaje puede usar las variables de la escena (¡Bienvenido {{triggerEvent.data.player}}!). Los jugadores lo ven como [Rcon] ¡A comer!: es el comando say del servidor, y el único comando que envía la integración además de list. Requiere RCON (Java Edition). Salida: servers, cuántos servidores aceptaron el mensaje.

En la pantalla de configuración, Probar la conexión lee cada servidor al momento.

Ideas de escenas​

  • La hora de comer: a las 19:30, Enviar un mensaje al chat de Minecraft «¡A comer! Guarden y bajen 🍽️».
  • ¿Quién está conectado? Cuando Un jugador se ha unido al servidor Minecraft, envíe un mensaje de Gladys a los padres: «{{triggerEvent.data.player}} se ha unido a {{triggerEvent.data.server}}».
  • La hora de dormir: los días de colegio a las 21:00, si Jugadores conectados es mayor que 0, enviar «¡Últimos 5 minutos!» al chat y apagar el enchufe del PC de juegos a las 21:05.
  • El servidor se ha caído: cuando Servidor Minecraft fuera de línea, envíe una notificación con {{triggerEvent.data.error}} a la persona que gestiona el servidor.

Solución de problemas​

  • «no responde»: compruebe la dirección y el puerto desde el equipo donde se ejecuta Gladys, que enable-status=true, y que ningún cortafuegos bloquee el puerto (TCP 25565 para Java, UDP 19132 para Bedrock). Gladys ejecuta la integración en un contenedor Docker: localhost allí no es su servidor, use su dirección IP en su red.
  • «no es un servidor Minecraft de esta edición»: algo responde en ese puerto, pero no como un servidor Minecraft de la edición elegida: compruebe la Edición (un servidor Bedrock no responde a la petición Java) y el puerto.
  • «nombre no encontrado»: el nombre no se resuelve desde Gladys; use la dirección IP.
  • «contraseña RCON rechazada»: no es el rcon.password del servidor. «RCON no responde»: falta enable-rcon=true, el Puerto RCON es incorrecto o un cortafuegos bloquea el puerto. Un problema de RCON nunca deja el servidor «fuera de línea»: el estado sigue funcionando.
  • Sin nombres en Jugadores: el servidor los oculta (vea más arriba): active RCON.
  • Para ver más: ponga LOG_LEVEL=debug en el contenedor; la integración registra entonces cada lectura, cada llegada y cada salida. Nunca registra la contraseña RCON.

Límites​

  • Java Edition 1.7 o posterior: los servidores anteriores a 1.7 (2013, el antiguo ping «legacy») no son compatibles.
  • Quién juega: solo Java Edition, 12 nombres como máximo sin RCON (vea más arriba). Bedrock Edition solo indica cuántos jugadores están conectados.
  • Una llegada o una salida se detecta en la lectura siguiente (30 segundos por defecto): un jugador que llega y se va entre dos lecturas no se detecta.
  • Se mantiene abierta una conexión RCON por servidor: el servidor vanilla escribe dos líneas en su registro por cada nueva conexión RCON, y volver a conectarse cada 30 segundos lo inundaría.
  • Los mensajes de chat pasan por say: el juego los muestra con el prefijo [Rcon]. Ningún otro comando es posible desde Gladys, a propósito.
  • Sin detección automática de los servidores en la red: Gladys ejecuta la integración en un contenedor aislado que no ve los anuncios de red del juego. Introduzca la dirección.
  • Desarrollada sin un Gladys real y sin un servidor Bedrock real: lo que no se ha comprobado está en el README del repositorio.

Parámetros de configuración​

Estos son los parámetros que Minecraft Server te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
Su servidor MinecraftsectionNoLeído como la pantalla multijugador del juego, sin ninguna cuenta. En casa o en línea. Hasta tres servidores. Sin relación con Mojang ni Microsoft.
DirecciónstringSíComo en el juego: dirección IP o nombre, :puerto si no es el estándar (Java 25565, Bedrock 19132).
EdiciónselectNoJava Edition (PC, Mac, Linux) o Bedrock Edition (consolas, tabletas, Windows).
NombrestringNoNombre del dispositivo en Gladys. Vacío: «Minecraft» seguido de la dirección.
Usar RCON (solo Java)booleanNoLista completa de jugadores y mensajes de chat desde las escenas. Requiere enable-rcon=true y rcon.password en server.properties.
Puerto RCONnumberNorcon.port de server.properties, 25575 por defecto.
Contraseña RCONsecretNorcon.password de server.properties. Una contraseña propia: RCON puede ejecutar cualquier comando.
Segundo servidor (opcional)sectionNoLos mismos campos, para otro servidor Minecraft.
DirecciónstringNoComo en el juego: dirección IP o nombre, :puerto si no es el estándar (Java 25565, Bedrock 19132).
EdiciónselectNoJava Edition (PC, Mac, Linux) o Bedrock Edition (consolas, tabletas, Windows).
NombrestringNoNombre del dispositivo en Gladys. Vacío: «Minecraft» seguido de la dirección.
Usar RCON (solo Java)booleanNoLista completa de jugadores y mensajes de chat desde las escenas. Requiere enable-rcon=true y rcon.password en server.properties.
Puerto RCONnumberNorcon.port de server.properties, 25575 por defecto.
Contraseña RCONsecretNorcon.password de server.properties. Una contraseña propia: RCON puede ejecutar cualquier comando.
Tercer servidor (opcional)sectionNoLos mismos campos, para otro servidor Minecraft.
DirecciónstringNoComo en el juego: dirección IP o nombre, :puerto si no es el estándar (Java 25565, Bedrock 19132).
EdiciónselectNoJava Edition (PC, Mac, Linux) o Bedrock Edition (consolas, tabletas, Windows).
NombrestringNoNombre del dispositivo en Gladys. Vacío: «Minecraft» seguido de la dirección.
Usar RCON (solo Java)booleanNoLista completa de jugadores y mensajes de chat desde las escenas. Requiere enable-rcon=true y rcon.password en server.properties.
Puerto RCONnumberNorcon.port de server.properties, 25575 por defecto.
Contraseña RCONsecretNorcon.password de server.properties. Una contraseña propia: RCON puede ejecutar cualquier comando.
GeneralsectionNoPara todos los servidores.
Intervalo de actualizaciónselectNoCon qué frecuencia se leen los servidores: una llegada se detecta como mucho con este retraso.
Idioma de los nombres de funcionesselectNoNombres de las funciones al añadir un dispositivo y textos de la lista de jugadores y de los eventos de escena.

Cómo instalar Minecraft Server en Gladys​

  1. En Gladys, abre Integraciones: Minecraft Server aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. Haz clic en Instalar. Gladys descarga la imagen Docker (ghcr.io/guim31/gladys-minecraft:1.0.1), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-minecraft.

Minecraft Server requiere Gladys >=5.1.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.

¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.

Sobre las integraciones externas​

Minecraft Server es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene guim31, no el equipo principal de Gladys.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂