Notificações de changelog do Nightbreak
O MagmaCore inclui uma caixa de entrada de changelogs partilhada. Todos os plugins que usam o atualizador Nightbreak do MagmaCore a recebem e usam-na para avisar os administradores de servidor, no jogo, quando o plugin ou um dos seus pacotes de conteúdo instalados tem notas de lançamento que ainda não leram.
Como a caixa de entrada vive no MagmaCore, comporta-se da mesma forma em todo o lado. Só mudam o nome do comando e o plugin sobre o qual está a reportar.
O comando
Cada plugin regista o seu próprio comando de changelog, construído a partir do comando raiz do plugin mais changelog — e não a partir do seu nome de apresentação, pelo que a etiqueta segue o comando raiz que esse plugin usa:
| Plugin | Comando |
|---|---|
| EliteMobs | /emchangelog |
| BetterStructures | /bschangelog |
| EternalTD | /etdchangelog |
| WorldCannon | /wcchangelog |
| FreeMinecraftModels | /freeminecraftmodelschangelog |
| ResurrectionChest | /resurrectionchestchangelog |
| BetterFood | /betterfoodchangelog |
| ResourcePackManager | /resourcepackmanagerchangelog |
Se essa etiqueta já estiver ocupada no servidor, o plugin regista em alternativa uma versão com espaço de nomes, e regista um aviso se não houver de todo nenhuma etiqueta livre de colisões.
| Utilização | O que faz |
|---|---|
/<root>changelog | Abre as notas de lançamento por ler. |
/<root>changelog dismiss | Marca como lidas as notas que acabou de ver. |
/<root>changelog disable | Desliga permanentemente o lembrete automático para si. O comando em si continua a funcionar. |
O comando é no jogo e apenas para administradores. Conta como administrador se for operador, ou se tiver a permissão wildcard do plugin, a sua permissão de admin, a sua permissão de setup ou a sua permissão de initialize.
O aviso ao entrar
Quando um administrador entra, o plugin espera alguns segundos e depois envia um breve aviso no chat com um botão clicável VIEW CHANGELOG se houver notas por ler. Os administradores que já estão online também são notificados uma vez quando uma consulta em segundo plano termina e encontra algo novo.
O mesmo aviso não é repetido enquanto o conjunto de lançamentos por ler não mudar, pelo que uma sessão normal recebe um lembrete em vez de uma enxurrada deles. Os administradores que executaram disable nunca são notificados.
Como as notas são apresentadas
No Minecraft 1.21.6 e mais recente, as notas abrem numa janela de diálogo com os botões Dismiss These Updates e Never Show Changelogs. Em servidores mais antigos, o mesmo conteúdo é impresso no chat com as instruções de comando equivalentes.
Uma única visualização mostra no máximo 20 lançamentos, do mais recente para o mais antigo, intercalando o próprio plugin e cada pacote de conteúdo acompanhado. Tudo o que ultrapasse esse limite é comunicado como uma contagem de lançamentos omitidos. Dispensar uma página completa deixa as notas mais antigas em fila de espera, e a mensagem seguinte oferece um botão VIEW NEXT.
O que é acompanhado
- Os lançamentos do próprio plugin, obtidos do seu changelog público do Nightbreak.
- Todos os pacotes de conteúdo instalados que tenham um slug Nightbreak, obtidos do changelog público desse pacote.
Na primeira vez que um plugin corre com a caixa de entrada, regista a versão em que está como piso de acompanhamento e mostra apenas esse lançamento atual. A partir daí, mostra os lançamentos entre o piso registado e a versão que está agora a executar, pelo que atualizar várias versões de uma só vez produz um resumo único que cobre todo o salto, em vez de não mostrar nada.
Os corpos dos lançamentos vêm do Nightbreak e são sempre apresentados como texto simples. Se não for possível contactar o serviço de changelogs, o plugin volta a tentar em segundo plano — começando cerca de 15 minutos depois e aumentando o intervalo até cerca de quatro horas — e mostra entretanto o que já tem em cache.
Onde fica guardado o estado de leitura
Cada plugin guarda o seu próprio estado em:
plugins/<PluginName>/nightbreak-changelogs.yml
<PluginName> é o nome interno do plugin, que nem sempre é o seu nome na wiki:
a pasta do WorldCannon é plugins/CannonRTP.
Esse ficheiro guarda o piso de acompanhamento de versão, uma cache das notas de lançamento obtidas e o estado de leitura e de exclusão por administrador, indexado por UUID. Não contém nenhum token de conta nem dados pessoais além dos UUID dos jogadores.
Eliminar o ficheiro reinicia o acompanhamento: o plugin trata a versão atual como um piso novo, e todos os administradores recomeçam com um estado de leitura limpo.
Como desligar
Não existe um interruptor para todo o servidor. Os lembretes são desativados por administrador, com:
/<root>changelog disable
Isso marca como lido tudo o que está disponível de momento e regista a opção de exclusão para esse jogador no ficheiro de estado do plugin. O comando continua a funcionar depois disso, caso queiram consultar manualmente — só o aviso automático é que para.