Saltar al contenido principal

Notificaciones de changelog de Nightbreak

MagmaCore incluye una bandeja de entrada de changelogs compartida. Todos los plugins que usan el actualizador de Nightbreak de MagmaCore la reciben, y la utilizan para avisar a los administradores del servidor, dentro del juego, cuando el plugin o alguno de sus paquetes de contenido instalados tiene notas de versión que aún no han leído.

Como la bandeja de entrada vive en MagmaCore, se comporta igual en todas partes. Lo único que cambia es el nombre del comando y el plugin sobre el que informa.

El comando

Cada plugin registra su propio comando de changelog, formado por el comando raíz del plugin más changelog — no a partir de su nombre visible, así que la etiqueta sigue al comando raíz que use ese plugin:

PluginComando
EliteMobs/emchangelog
BetterStructures/bschangelog
EternalTD/etdchangelog
WorldCannon/wcchangelog
FreeMinecraftModels/freeminecraftmodelschangelog
ResurrectionChest/resurrectionchestchangelog
BetterFood/betterfoodchangelog
ResourcePackManager/resourcepackmanagerchangelog

Si esa etiqueta ya está ocupada en el servidor, el plugin registra en su lugar una alternativa con espacio de nombres, y registra una advertencia si no había ninguna etiqueta libre de colisiones disponible.

UsoQué hace
/<root>changelogAbre las notas de versión no leídas.
/<root>changelog dismissMarca como leídas las notas que se te acaban de mostrar.
/<root>changelog disableDetiene permanentemente el recordatorio automático para ti. El comando en sí sigue funcionando.

El comando es dentro del juego y solo para administradores. Cuentas como administrador si eres operador, o si tienes el permiso comodín del plugin, su permiso de administración, su permiso de configuración o su permiso de inicialización.

El aviso al entrar

Cuando un administrador entra, el plugin espera un par de segundos y después envía un breve aviso por chat con un botón VER CHANGELOG en el que se puede hacer clic, si hay notas sin leer. Los administradores que ya están conectados también reciben un aviso una vez cuando una descarga en segundo plano termina y encuentra algo nuevo.

El mismo aviso no se repite mientras el conjunto de versiones sin leer no cambie, de modo que una sesión normal recibe un recordatorio en lugar de un flujo continuo. Los administradores que han ejecutado disable nunca reciben avisos.

Cómo se muestran las notas

En Minecraft 1.21.6 y posteriores las notas se abren en una ventana de diálogo con los botones Descartar estas actualizaciones y No mostrar nunca los changelogs. En servidores más antiguos el mismo contenido se imprime en el chat con las instrucciones de comando equivalentes.

Una sola vista muestra como máximo 20 versiones, de la más reciente a la más antigua, intercalando las del propio plugin y las de cada paquete de contenido rastreado. Todo lo que exceda ese límite se informa como un recuento de versiones omitidas. Descartar una página completa deja las notas más antiguas en cola, y el mensaje de seguimiento ofrece un botón VER SIGUIENTE.

Qué se rastrea

  • Las versiones del propio plugin, tomadas de su changelog público de Nightbreak.
  • Cada paquete de contenido instalado que tenga un slug de Nightbreak, tomado del changelog público de ese paquete.

La primera vez que un plugin se ejecuta con la bandeja de entrada, registra la versión en la que está como punto de partida del rastreo y muestra solo esa versión actual. A partir de ahí muestra las versiones que hay entre el punto de partida registrado y la versión que estás ejecutando ahora, de forma que actualizar varias versiones de golpe produce un único resumen que cubre todo el salto en lugar de nada en absoluto.

Los cuerpos de las notas de versión vienen de Nightbreak y siempre se muestran como texto plano. Si no se puede contactar con el servicio de changelogs, el plugin lo reintenta en segundo plano — empezando unos 15 minutos después y espaciando los intentos hasta unas cuatro horas — y mientras tanto muestra lo que ya tenga en caché.

Dónde se guarda el estado de lectura

Cada plugin guarda su propio estado en:

plugins/<PluginName>/nightbreak-changelogs.yml

<PluginName> es el nombre interno del plugin, que no siempre coincide con su nombre en la wiki: la carpeta de WorldCannon es plugins/CannonRTP.

Ese archivo contiene el punto de partida del rastreo de versiones, una caché de las notas de versión descargadas y el estado de lectura y de exclusión por administrador, indexado por UUID. No contiene ningún token de cuenta ni datos personales más allá de los UUID de los jugadores.

Borrar el archivo reinicia el rastreo: el plugin trata la versión actual como un nuevo punto de partida, y cada administrador empieza con un estado de lectura limpio.

Cómo desactivarlo

No hay un interruptor para todo el servidor. Los recordatorios se desactivan por administrador, con:

/<root>changelog disable

Eso marca como leído todo lo disponible actualmente y registra la marca de exclusión para ese jugador en el archivo de estado del plugin. El comando sigue funcionando después, por si quieren consultarlo manualmente — lo único que se detiene es el aviso automático.