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
Extractioncraft/extractioncraftchangelog
MegaBlock Survivors/mbschangelog

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 usa la bandeja, registra su versión actual como punto de partida y muestra solo esa versión. Después muestra las versiones entre ese punto y la versión instalada. Si el historial que devuelve Nightbreak ya no contiene la versión de partida, el seguimiento se limita a las últimas 20 versiones de ese componente hasta la instalada.

Las notas proceden de Nightbreak y se muestran como texto literal; el diálogo colorea las etiquetas estándar de cambios. El cuerpo de cada nota se limita a 6.000 caracteres. Si el servicio no está disponible, el plugin reintenta la consulta en segundo plano, primero unos 15 minutos después y aumentando la espera hasta unas cuatro horas. Mientras tanto, muestra las notas que 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.