Histórico de atualizações

Todas as atualizações do site e do mod do servidor, as mais recentes primeiro

Aqui está o histórico completo do site do CloudRidge e do mod do servidor, das mais recentes para as mais antigas, para você ver quando um recurso chegou ou quando um problema foi corrigido.

Por versão Limpar

Filtrado: 66 de 127

v1.9.86 Site 2026-10-31

换页不再白屏一下、注册页的「手机号注册」能点了

  • 点站内链接时,旧页面不再先淡成一片白底 —— 之前新页面要等网络往返才到,中间那一下就是白屏。现在旧页面保持原样,换页后新页面照旧淡入、内容依次上滑。
  • 注册页的「手机号注册」原来点了像是没反应:它只是把单选按钮选中,页面上的提示文案与「发验证码」的去向都没变。现在切一下就整页重渲染,提示、去向、表单都跟着变。
  • 如果站点没有配置短信服务,注册页不会再把你留在「手机号注册」这个空壳上,而是自动退回邮箱注册。
v1.9.85 Site 2026-10-31

Só um «Entrar» no cabeçalho e o hero 3D no tamanho certo

  • A entrada do QQ saiu do cabeçalho — antes ficavam dois botões lado a lado, agora só «Entrar». O QQ aparece apenas nas páginas de entrar e de cadastro.
  • A câmera 3D agora enquadra pela altura do modelo: a cena não transborda em janelas altas nem encolhe numa janela baixa.
  • As cores dos blocos foram reunidas na paleta do cerezo: tábuas carmesim, verruga do Nether e corais viram madeira de cerejeira, pétalas e folhas — acabou o ruído colorido. Nenhum bloco mudou de lugar.
v1.9.84 Site 2026-10-31

A capa agora é uma cena 3D que você pode girar

  • A capa inteira agora é uma cena 3D de jardim: arraste para girar, role para ampliar, clique num bloco para quebrá-lo — ele volta em dez segundos.
  • Celulares e navegadores sem WebGL2 não carregam o 3D à força: recebem um pôster estático do mesmo ângulo e um botão Ver em 3D no canto.
  • A troca de página também ficou fluida: a atual some, a nova aparece e seus blocos sobem um após o outro. Com movimento reduzido, os links funcionam como antes.
  • O chamativo quadrado azul do QQ saiu: agora usa o menor ícone oficial da Tencent (16×16), no mesmo peso dos demais.
v1.9.83 Site 2026-10-31

Um único botão de QQ no site inteiro

  • Login, cadastro, cabeçalho e conta usam agora o mesmo botão de QQ: o ícone oficial da Tencent na nossa própria pílula com borda. A Tencent permite o formato «ícone pequeno + texto», e o ícone continua sendo o original.
  • Em «Conta e segurança» há uma linha de QQ: vincular, revincular ou desvincular. Contas sem senha não podem desvincular — uma conta criada só com QQ não tem senha e ficaria sem acesso para sempre.
  • Tipografia e textura: títulos mais compactos e firmes, seções com mais respiro e um brilho suave que segue o ponteiro pelos cartões.
  • Movimento: a abertura sobe linha a linha, os números contam, uma barra de leitura fica no topo e os cartões da home flutuam de leve. Se o sistema pedir para reduzir movimento, tudo para; aparelhos sem ponteiro não recebem o brilho.
v1.9.82 Site 2026-10-31

O login com QQ agora usa o botão oficial da Tencent — na página de login, na de cadastro e na barra superior

  • As páginas de login e de cadastro mostravam um pinguim desenhado à mão com o texto “login com QQ em um clique”. A especificação de páginas web da Tencent exige a marca oficial “QQ登录” e proíbe alterá-la, então as duas agora usam a imagem original de 230×48 da Tencent no tamanho nativo: sem esticar e sem redimensionar.
  • A barra de navegação superior também ganhou um: o botão oficial de 76×24 “QQ登录” em telas largas e, abaixo de 375 px, o ícone oficial de 24×24, para o cabeçalho nunca precisar de rolagem horizontal.
  • Dois detalhes corrigidos de passagem: o botão oficial nunca fica acinzentado — se a caixa dos termos não estiver marcada, o clique rola até a caixa e a destaca em vermelho em vez de desativar o botão (um botão cinza parece justamente um botão mal posicionado). E a frase “este site usa e-mail + senha” estava desatualizada: nos dez idiomas sobrou apenas a metade sobre o cadastro.
v1.9.81 Site 2026-10-18

No celular, o texto do Guia do servidor ficava escondido atrás do próprio índice — corrigido

  • No desktop, a coluna lateral do guia é uma faixa estreita fixada no canto superior esquerdo. Ao colapsar para uma única coluna, ela passa a ocupar a largura toda e fica mais alta que a tela, mas continuava fixada no topo: o artigo rolava por baixo, o texto parecia sobreposto, caixas brancas flutuavam sobre as palavras e o conteúdo dava a impressão de estar faltando. Em telas estreitas (900 px ou menos) agora ela rola junto com a página; no desktop continua fixada. O problema já existia antes desta rodada; só não tinha sido notado no celular.
v1.9.80 Site 2026-10-18

Ferramentas arrumadas: a barra de abas funciona, o degradê ficou mais livre e a calculadora entrega uma lista para preencher e ligar

  • As dez ferramentas ficavam todas numa página só e tocar na cápsula do topo apenas pulava para uma âncora, então parecia que nada acontecia. Agora é uma barra de abas de verdade e só uma ferramenta aparece por vez; um endereço com #t-xxx continua abrindo a ferramenta direto e no celular a barra rola na horizontal. O texto em degradê saiu de duas cores fixas para 2~6 paradas: toque na barra para adicionar, arraste para mover, selecione uma parada e toque em «Remover esta cor»; as cores são interpoladas caractere por caractere conforme a posição, então códigos § / MiniMessage / tellraw / MOTD mudam juntos, e um MOTD longo demais avisa
  • A calculadora de configuração de servidor passou de três faixas de orçamento para nove campos. Quantidade de mods, distância de visão, distância de simulação, se roda redstone, TPS alvo e versão agora são preenchíveis. A saída não são mais algumas linhas de números: a memória explica por que cresce e você ainda recebe um comando de inicialização pronto para copiar com Aikar’s flags, sugestões linha por linha para server.properties e spigot.yml e uma lista de mods e plugins separada por estilo de jogo. Os três fatores que mais mudam — memória por jogador, fator de mods e fator de redstone — foram para «Ferramentas» no painel, e basta recarregar para valer
  • A checagem de lag agora atribui o custo item por item e compara com os dados ao vivo do site. Você informa mais quatro coisas: entidades permanentes, carregadores de chunk, fios de redstone e fazendas automáticas. A saída divide o MSPT em sete itens com participação e milissegundos, e só aponta «é isso que está arrastando» quando o item realmente leva a maior parte (acima de 45%); se não, diz com honestidade que o maior é esse mas o conjunto segue baixo. Todo item vem com uma correção aplicável, e a ferramenta ainda busca os dados ao vivo do site para dizer quanto a sua escala deveria custar na teoria e quanto sobra aqui agora; sem dados, fica na estimativa local e não mostra erro
v1.9.79 Site 2026-10-18

O vidro líquido refeito no estilo Apple: refrata, tem brilho e se sustenta sobre branco

  • ① Na versão anterior o vidro era basicamente uma camada branca, que sumia assim que ficava sobre um cartão branco. Desta vez o material foi refeito seguindo a linha do iOS 26: uma linha clara em cima, uma escura embaixo, um anel de 1 px por fora, um brilho suave por dentro e uma sombra bem leve; no desktop ele continua refratando de verdade (o fundo se curva de leve, a peça inteira sobe 1 pixel no hover e volta a assentar ao pressionar). Os botões principais e os de perigo ficavam totalmente fora do vidro; agora entram também: o gradiente da marca fica no próprio botão, o contraste do texto branco não muda e a camada de vidro só cuida do brilho e do contorno, sem refração por cima. O mesmo material foi estendido aos campos de entrada, aos selects, às tags, aos selos de jogo, ferramenta e jogador e à navegação do topo.
  • ② No celular a refração não roda mais (é o passo mais caro) e vira automaticamente desfoque mais contorno com brilho: continua parecendo vidro, mas quase não gasta GPU. De quebra, um bug de verdade foi corrigido: o ramo do celular saía antes e nem executava a degradação, ou seja, no celular não havia vidro nenhum. No desktop também teve duas coisas: peças do mesmo tamanho geram uma única textura de deslocamento (as 7 peças da home usam só 4) e as que saem da tela não são mais calculadas; além disso, nada de novo é gerado quando uma peça passa de 300 mil pixels ou uma página passa de 80 — melhor uma peça a menos do que a rolagem travando.
  • ③ No painel, em Aparência, segue o mesmo interruptor, agora ligado por padrão; navegadores sem backdrop-filter (Safari, Firefox) caem para um preenchimento fosco, em vez de parecer que quebraram. Desta vez nem a paleta nem o layout foram tocados, o tema continua Azul Cloudridge; o fundo branco estilo Apple da versão anterior foi revertido no site inteiro (painel, fórum, galeria e mapa voltaram ao que eram) e ficaram só duas correções reais: a caixa de confirmação de ações perigosas do painel não tinha estilo nenhum (as 43 confirmações de exclusão abriam como uma caixa crua, sem camada de fundo) e os títulos da galeria em telas estreitas só apareciam ao passar o mouse.
v1.9.78 Site 2026-10-17

O site inteiro no estilo Apple: fundo branco, linhas de um pixel, botões em pílula, e uma leva de números errados corrigida

  • A aparência do site foi refeita de ponta a ponta no padrão da Apple: fundo branco, texto quase preto, uma linha de 1 px no lugar das sombras, botões e chips de filtro unificados em pílulas de 44 de altura, e a barra superior que passa de translúcida a sólida ao rolar. O vidro fosco sai por completo — as camadas desfocadas dos cartões de dados, da linha do tempo e dos cartões de status não existem mais, só resta uma camada bem leve de translucidez na barra superior. Títulos em chinês não recebem mais espaçamento negativo entre letras: os caracteres chineses já ocupam a largura toda, e apertá-los amontoa o texto e faz parecer negrito; só os números precisam ser apertados. O painel administrativo também foi reorganizado no caminho, e um bug de verdade foi corrigido: as caixas de confirmação de ações perigosas não tinham estilo nenhum no painel, apareciam como uma caixa crua sem camada de fundo e sem posicionamento, e isso afetava os 51 pontos de confirmar exclusão do site; agora é um cartão centralizado, com camada de fundo e título em vermelho. Tudo isso fica no esquema de cores Apple (escolhido em Admin → Aparência), e voltar para Azul Cloudridge desfaz tudo, sem mexer em código.
  • No celular, o alvo desta vez foi exatamente o que não se sentia bom de usar: os quatro números grandes da página de dados ocupavam uma linha inteira cada, agora cabem em 2×2 numa tela; o campo de busca de jogador e o botão Buscar ficavam empilhados (o botão cobria quase 70 pixels do texto de exemplo), agora ficam lado a lado numa linha; no ranking cada linha tinha a linha cinza de cima e a de baixo somando numa barra grossa, agora é uma única linha de 1 px; a borda dupla de cartão dentro de cartão na linha do tempo, as várias molduras tracejadas e a barra de rolagem grossa e cinza escura do Windows foram todas arrumadas de uma vez; na barra lateral da página de guia, o rótulo e o valor do status do servidor ficavam colados (aparecia Version1.21.1), agora ficam alinhados à esquerda e à direita com uma linha divisória.
  • Dez problemas de dados da auditoria foram corrigidos. Os dois mais importantes: o tempo total online da página inicial mostrava segundos como horas (dizia 35,7 M h, o valor real é 9907 horas, uma diferença de 3600 vezes); e quatro pessoas na lista de banimentos apareciam como revogadas mesmo continuando valendo — quando o heartbeat informava que já existia, só o status era trocado silenciosamente de volta para ativo, sem gravar histórico e sem restaurar a marca de banimento do jogador. O resto: a contagem de mods instalados aparecia como 0 / 12 / 160 em três lugares da página de status (o valor real é 160) e o sistema operacional aparecia como travessão, os dois pelo mesmo motivo: a consulta por baixo devolve uma lista branca que não inclui esses dois campos; uma sequência de UUIDs ocupava o ranking no lugar dos nomes e agora aparece como Jogador desconhecido · 87274f; o teto de disponibilidade estava fixo em 99,2 por cento (calculado com intervalo fixo de 30 segundos, quando o heartbeat real chega a cada 31); e o K/D dava números astronômicos quando não havia mortes, agora mostra travessão. Outros dois são política de ranking (duas formas de mesclar, uma por papel e outra por conta, e uma conta fantasma que só tem abates) e não foram forçados — as diferenças e o custo estão escritos nos comentários do código para o dono do site decidir.
v1.9.77 Site 2026-10-11

Forjar o IP real: esse caminho agora está fechado do nginx até a camada de aplicação

  • ① Primeiro medir, depois mexer: uma sonda em produção mediu dois fatos — o nginx do BaoTa usa o protocolo PROXY, então o endereço real do cliente já está no REMOTE_ADDR (medido: 222.212.76.94, não 127.0.0.1); e os X-Real-IP / X-Forwarded-For / CF-Connecting-IP que o próprio cliente enfia são repassados pelo nginx ao PHP exatamente como vieram, os três cabeçalhos forjados chegam intactos e o nginx não sobrescreve nenhum deles. ② Reforçar as duas pontas: o nginx injeta um segredo que só o próprio proxy conhece (mesmo que o cliente forje esse cabeçalho, o nginx sobrescreve) e a camada de aplicação ganha mais uma barreira — se o REMOTE_ADDR for um endereço público, ele é adotado direto e nenhum cabeçalho de proxy é mais consultado — assim, mesmo que um dia o trust_proxy seja ligado por engano, o IP do limite de requisições, dos bloqueios e da auditoria nunca vira um valor escolhido pelo visitante.
  • De quebra, três coisas: o comentário enganoso em site/config/config.php («definir como true atrás de CDN / proxy reverso») foi trocado pela conclusão medida e por um aviso — segui-lo neste site só elevaria um cabeçalho forjável a valor de autoridade; esta mudança ganhou testes automatizados (trust_proxy ligado + REMOTE_ADDR pública + cabeçalhos forjados ⇒ ainda devolve o endereço real) e a suíte passou de 81 para 83 verificações, todas verdes; a sonda temporária de diagnóstico em produção foi removida conforme combinado, e agora pedir por ela dá 404.
v1.9.76 Site 2026-10-11

Rolagem mais fluida no celular, algumas brechas de segurança fechadas e o chat que não perde mais o trecho do meio

  • Quatro pontos de fluidez no celular: o vidro fosco da barra superior ao rolar, o de todos os cartões em telas estreitas, a camada de composição que a animação de entrada mantinha viva para cada elemento, e a barra de progresso de leitura que forçava um reflow a cada pixel rolado — tudo trocado por formas equivalentes, mas mais baratas (a barra superior em estado de rolagem já é opaca, então aquele desfoque era puro desperdício; e quando a animação começa de verdade, o navegador promove a camada sozinho). Medido em viewport de celular com 390 de largura e CPU limitada em 20×: o pior quadro caiu de 364 milissegundos para 57 milissegundos. A diferença na contagem geral de quadros fica dentro do ruído desta máquina, sem conclusão estável possível — por isso cada item acima só foi mexido quando fazia sentido pelo mecanismo.
  • Três pontos de segurança (risco alto/médio, corrigidos na hora): ① o _admlogin.php de depuração local agora precisa dar 404 em produção (ele transformava um visitante em administrador direto) e o ?to= não pode mais sair do site; ② o ping / dns da página de teste de velocidade entregava um domínio para sondar uma porta e podia ser desviado para a rede interna por DNS rebinding — agora só se conecta ao IP já validado; ③ forjar X-Real-IP / CF-Connecting-IP servia para burlar o limite por IP; agora esses cabeçalhos só são aceitos quando a origem é realmente loopback. Para fechar o ③ de vez é preciso injetar X-CDR-Proxy-Secret no nginx e preencher security.proxy_secret em site/config/config.php — isso mexe na configuração do servidor, então aguardo o seu OK.
  • Três bugs de verdade no registro do chat: ① quando um dia passava de 200 mensagens, aquele trecho do meio nunca aparecia na página (o dia mais movimentado tem 2796 mensagens, e o caminho antigo só voltava até 500, deixando as 2296 do meio invisíveis para todo mundo); ② a ordenação olhava só a chave primária id, então em dias que cruzam a virada as mensagens depois da meia-noite ficavam fora da janela (medido: 53 mensagens mais novas puladas permanentemente); ③ quando o envio falhava, a interface fingia que a mensagem já tinha saído. Agora a busca é por horário, há um botão «carregar anteriores» para voltar, e a falha avisa claramente e deixa tentar de novo.
  • De quebra: as páginas dos visitantes não são mais proibidas de cache de forma geral (voltar e avançar ficam um pouco mais rápidos), e o estado logado continua sem cache nenhum. Os 218 arquivos PHP do site passam na checagem de sintaxe sem erros e os 59 scripts de autoteste rodaram por inteiro — as 15 suítes ligadas a esta mudança deram resultado exatamente igual ao de antes (nenhuma falha local a mais).
v1.6.7 Mod 2026-10-10

Uma versão que poupa mais a thread principal do servidor

  • O relatório do mapa passou de «montar o JSON de 197 mil pontos dentro do tick do servidor» para «esse tick só entrega os dados e a montagem acontece numa thread em segundo plano». É o único ponto do mod inteiro que podia causar «centenas de milissegundos em um único tick», e corresponde exatamente ao pico ocasional a cada meia hora.
  • Os demais custos que crescem com o número de jogadores ou de entidades também foram otimizados: a formatação dos números do TAB agora é cacheada por tick, a busca de jogadores por nome usa um índice refeito uma vez por tick, a lista de conquistas não constrói mais uma string por entrada, os arquivos de configuração e a lista de banimentos lidos a cada 30 segundos foram para segundo plano, a checagem de tamanho da fila do chat usa um contador, a amostragem de rede não cria mais uma thread a cada 20 segundos e a tabela de limitação de comandos não cresce mais sem parar. O formato do relatório, os nomes dos campos e o momento em que os valores são lidos continuam iguais.
v1.9.75 Site 2026-10-10

Mod do servidor enxugado: os custos que crescem com o número de jogadores saíram da thread principal

  • O maior bloco do relatório do mod é o mapa: três mapas de 256×256 cada, cerca de 197 mil pontos. Antes esses pontos eram montados em JSON dentro do próprio tick do servidor, e o servidor só continuava depois de montar — uma rodada a cada meia hora, o que bate exatamente com aqueles picos de «às vezes trava por um instante». Agora esse tick só entrega os dados e a montagem vai para uma thread em segundo plano: os dados já estavam prontos, e montar o JSON nunca precisou ocupar a thread principal.
  • De quebra, vários custos que crescem com o número de jogadores online foram cortados: os números da lista TAB (tempo de jogo, jogadores online e afins) eram recalculados para cada linha de cada jogador, sendo que só mudam a cada 30 segundos; buscar um jogador pelo nome caía numa varredura linha a linha da tabela inteira (10 jogadores significavam 100 buscas); a lista de conquistas passava por mais de mil receitas a cada 10 minutos; e a cada 30 segundos, só para contar entidades, todos os mundos eram percorridos por completo, enquanto os arquivos de configuração e a lista de banimentos eram lidos na thread principal. Agora isso virou cache, índice, cálculo único e leitura em segundo plano — não mudou um único byte do que é enviado ao site, e as páginas aparecem exatamente como antes.
v1.9.74 Site 2026-10-05

Administração e privacidade do perfil melhoradas

  • O contador de pendências da barra lateral contava só o fórum e a galeria, enquanto o painel de administração contava cinco filas; agora tudo vem de uma única função e cada item do menu traz o seu próprio número. Ações destrutivas (excluir um grupo de usuários, excluir um item de navegação, limpar o registro do chat, limpar o cache) eram executadas sem perguntar; agora pedem confirmação. As listas de skins, fundos de avatar e registro do chat paravam em 200 e 60 linhas e agora podem ser paginadas.
  • A opção de permitir que outros vejam seu perfil afetava apenas a página da equipe, e o perfil continuava visível para todos; agora ela vale de verdade, exceto para você mesmo. Trocar a senha e encerrar sessões de outros aparelhos também entram no registro de auditoria.
v1.9.73 Site 2026-10-05

Botões vermelhos de confirmar e excluir voltaram a aparecer

  • O botão de confirmar ao retirar uma mensagem ficava em branco: com o vidro líquido ativo, a regra do vidro remove o fundo do botão mas mantém o texto branco, então um botão vermelho virava branco no branco. Agora os botões vermelhos sólidos ficam fora do vidro, igual ao botão principal azul.
  • O mesmo problema atingia todos os botões vermelhos do site (retirar, excluir, desvincular e outros), então todos foram corrigidos juntos.
v1.9.72 Site 2026-10-05

A paginação não volta mais ao topo

  • Clicar em próxima página lá embaixo jogava você para o topo. Agora o paginador alinha a lista acima dele e não faz nada quando essa lista já está visível. Voltar e avançar retornam à posição de rolagem anterior.
  • De quebra, alguns ajustes: o mapa da seed entrou no menu Servidores, âncoras não ficam mais sob o cabeçalho fixo, os cartões da galeria mostram o autor e os jogadores online da página inicial levam ao perfil.
v1.9.71 Site 2026-10-05

Permissões do painel mais rígidas e correções menores

  • Configurações, troca de chave, backups e ferramentas do sistema agora são exclusivos do proprietário — os administradores de servidor mantêm conteúdo, denúncias e lista branca.
  • Vários detalhes da troca de página sem recarregar foram corrigidos: o modo escuro permanece, os formulários não são mais enviados duas vezes, a contagem regressiva corre na velocidade normal e a ordenação não recarrega mais a página.
v1.9.70 Site 2026-10-05

Trocar de página sem recarregar tudo

  • A paginação, os filtros, a busca e a ordenação agora trocam apenas o conteúdo — a barra de endereços continua mudando e o botão Voltar continua funcionando.
  • Salvar, revisar e excluir continuam abrindo uma página nova, como antes.
v1.9.69 Site 2026-10-05

A lista de sugestões da busca ficava escondida atrás dos cartões

  • Elementos animados carregam will-change, e will-change cria um contexto de empilhamento, então o z-index da lista só valia dentro do próprio cartão e perdia para os cartões de estatísticas que vêm depois no DOM
  • Agora o cartão de busca inteiro é elevado e a lista flutua por cima
v1.9.68 Site 2026-10-04

Corrigido o perfil que não rolava no celular

  • O visualizador 3D da skin fixava touch-action:none e chamava preventDefault sem condição em touchstart/touchmove, então um dedo sobre ele travava a página inteira. Agora o gesto vertical volta ao navegador e só o horizontal gira o modelo
  • Arrastar o fundo no cabeçalho também passa a ser só com o mouse
v1.9.67 Site 2026-10-04

Guia do servidor reescrito: o dobro de conteúdo, e os comandos agora dizem quais são do jogador

  • As quatro páginas — primeiros passos, regras, perguntas frequentes e sobre — foram reescritas, cada uma explicando por que um passo importa e o que fazer se falhar
  • A página de comandos agora abre com uma seção Comandos do jogador escrita à mão, agrupada em primeiros passos, viagem, chat e status; a tabela completa de 435 linhas continua abaixo
v1.9.66 Site 2026-10-04

O aviso de rolagem nao gruda mais na tabela

  • O aviso acima da tabela encostava na borda superior e parecia sobreposto; agora tem espaco
  • O cabecalho fica totalmente opaco ao rolar: antes era translucido e deixava o texto aparecer
v1.9.65 Site 2026-10-04

Corrigida uma falha nos SVG enviados

  • Antes, um SVG especialmente preparado como avatar ou fundo podia revelar o endereço IP e o navegador de todos que o vissem. Agora essas referências externas são removidas, sem alterar a aparência da imagem.
  • Também foram adicionados HSTS e algumas políticas de segurança de conteúdo bem conservadoras.
v1.9.64 Site 2026-10-04

O selo de revisão não fica mais aceso + a página de status esconde IPs internos

  • O selo de «revisão» do painel contava cinco filas, mas o painel «gerenciar servidor» só dá conta de duas: o selo ficava aceso sem nada para revisar. Agora os dois usam o mesmo critério e o painel ganhou uma linha «mais pendentes»: galeria / skins / fórum, cada uma com link para a página de admin existente.
  • A linha «mapa web» da página de status mostrava 127.0.0.1:8100 (um endereço interno, usado só na sondagem). Agora mostra o endereço público do mapa web.
v1.9.63 Site 2026-10-04

Os vídeos aparecem na revisão do painel

  • Fundos com vídeo de fundo agora mostram esse vídeo direto no cartão de revisão: aperte o play, só o começo é carregado por padrão (sem gastar dados) e há a etiqueta «contém vídeo».
  • Antes o cartão mostrava só a imagem de capa que o jogador escolhia à parte, que podia não ter nada a ver com o vídeo. Chega de aprovar no escuro.
  • Também corrigido o «1970-01-01» na hora do envio: minha ferramenta de envio de arquivos gravava o formato errado. Dados e ferramenta corrigidos.
v1.9.62 Site 2026-10-04

Erro 500 corrigido + dois ajustes visuais

  • Erro 500 corrigido: na versão anterior eu coloquei os argumentos do log de auditoria pós-login nas posições erradas, então todo login bem-sucedido gerava um erro interno. Agora o login redireciona normalmente.
  • A linha «Li e concordo com os Termos de Serviço e a Política de Privacidade» desceu para o fim do formulário (depois do botão Entrar), como nas páginas de login usuais. Sem marcar, não dá para entrar.
  • O escurecimento do cabeçalho do perfil agora é um degradê suave: a linha horizontal tão visível sumiu e a transição ficou natural.
v1.9.61 Site 2026-10-04

É preciso aceitar os termos para entrar

  • A página de login agora tem uma caixa: «Li e concordo com os Termos de Serviço e a Política de Privacidade» — sem marcá-la não dá para entrar. Vale para os dois caminhos (QQ em um clique e e-mail + senha), e o servidor também confere, porque desativar um botão não impede ninguém.
  • Escrevemos duas páginas de verdade, Termos de Serviço e Política de Privacidade, listando item por item o que o site guarda: o apelido e o openid que o QQ fornece, seu e-mail e o hash da senha, personagens vinculados, estatísticas de jogo, imagens enviadas e o IP e a hora de cada acesso.
  • Elas também dizem com quem compartilhamos — apenas três terceiros: QQ Connect (login), mc-heads.net (avatar de skin quando você não enviou um) e 126 Mail (códigos de verificação). Sem redes de anúncios e sem vender dados.
  • Também cobrem por quanto tempo guardamos, como pedir exclusão ou exportação e como tratamos menores. As duas páginas estão linkadas no rodapé.
v1.9.60 Site 2026-10-04

O texto do cabeçalho agora é legível nos quadros claros

  • Depois que o vídeo substituiu a foto, o texto branco do cabeçalho ficou sobre céu e nuvens claros com pior caso de 1,16:1, ou seja, praticamente ilegível. A causa foi a ordem de pintura: o vídeo é um elemento filho real enquanto o degradê de escurecimento ficava em body.cdr-body::before (conteúdo gerado), e o conteúdo gerado sempre é pintado antes dos filhos reais, então o vídeo cobria o degradê por inteiro e ele não fazia nada
  • A correção transforma o escurecimento no próprio fundo do cabeçalho: um único degradê vertical (62 por cento no topo, sumindo aos 350px) que cobre apenas a faixa do cabeçalho e não toca um pixel do personagem, do chão ou da água; nenhuma camada fixa nova foi adicionada, então a altura da página continua em 6816px
  • No quadro mais claro o contraste do cabeçalho subiu de 1,16 a 2,63 para 4,85 a 6,91 para 1 (o padrão do texto branco é 4,5 para 1). De quebra foi corrigida uma regressão que só aparecia online: sob o vidro líquido o botão Voltar tem superfície translúcida e também era escurecido (5,19 para 1 caiu para 2,14 para 1); agora o rótulo também fica branco, pior caso 6,04 para 1
  • Só afeta páginas com banner; as sem banner ficam idênticas byte a byte. Roda, botões e reprodução do vídeo foram revalidados
v1.9.59 Site 2026-10-04

Fundos animados: a causa real da roda e do clique mortos foi encontrada

  • A causa foi uma colisão de nomes de classe: .pub-bg-video era ao mesmo tempo a classe do elemento de vídeo e a classe de interruptor colocada em <html>. Assim, toda a regra da camada de vídeo fixa em tela cheia caiu sobre o elemento raiz — a raiz virou position: fixed, a altura da página desabou para uma tela e a roda não tinha o que rolar
  • Mais traiçoeiro ainda, pointer-events: none é herdado: toda a árvore do documento deixou de receber o mouse, só <html> o capturava, e o botão Voltar ficou inalcançável
  • A correção: renomear a classe de estado para pub-bg-on e restringir a regra do elemento a video.pub-bg-video, para que as duas nunca mais se cruzem
  • O material de fundo voltou à primeira versão (4,50 MB → 4,41 MB) sem escurecimento gravado nas imagens, então as cores voltaram ao normal; três bancadas locais também foram corrigidas — mediam <html> achando que mediam a camada de vídeo
v1.9.58 Site 2026-10-04

Fundos animados: uma tela de altura de graça a menos, arrastar mais visível

  • Novo vídeo (15,98 MB → 4,50 MB), o escurecimento vai gravado nas próprias imagens; a miniatura no celular é essa mesma imagem
  • Removida uma camada de máscara invisível que mesmo assim somava mais de uma tela de altura
  • O cursor vira uma mão que agarra sobre o cabeçalho; o critério foi afrouxado para notebooks com tela sensível ao toque
  • O problema da roda ainda está em análise; esta versão corrige os três itens acima
v1.9.57 Site 2026-10-04

Seu perfil agora pode ter um fundo animado

  • Envie um clipe sem som de 5 segundos a 1 minuto: ele roda em loop no computador, enquanto o celular mantém a imagem estática sem baixar nada a mais
  • Só o espaço do banner aceita vídeo, e ele passa pela mesma análise das imagens; o limite é 6 MB — acima disso o erro é claro, nunca silencioso
  • A imagem estática vista no celular é o seu banner, então escolha um que combine com o clipe
  • O recurso vem desligado — ative nos ajustes do admin para a área de envio aparecer
v1.9.56 Site 2026-10-03

Corrigido: «escolhi uma imagem, salvei e nada aconteceu»

  • Um jogador enviou avatar e banner — até mandou vídeo — e nada aparecia na moderação. A imagem nunca chegou ao servidor: o $_FILES ficou vazio do começo ao fim
  • A causa foi o HEIC do iPhone: o navegador não consegue decodificar, a janela de recorte tratou isso como cancelamento, e cancelar apaga o arquivo do formulário. Sem arquivo, o servidor só podia supor «não está trocando a imagem» e respondia com uma mensagem verde de sucesso
  • Imagens que o navegador não decodifica não são mais descartadas — o original é enviado como está (apenas sem recorte), com a explicação do motivo
  • Também há uma proteção no servidor: se o navegador diz que escolheu uma imagem mas nenhum arquivo chega, aparece um erro em vez de fingir que deu certo. Cancelar de verdade também é avisado claramente
v1.9.55 Site 2026-10-03

A correção de nomes de «jogador desconhecido» foi para o painel

  • O script de linha de comando .tools/_backfill-names.php virou um botão em Admin -> Ferramentas do sistema
  • Ele lê os usercache.json dos backups históricos, devolve o nome real às linhas ainda nomeadas como UUID e leva junto o histórico de sessões / conquistas / skins
  • A página mostra primeiro quais linhas mudam e para quê; antes de gravar é tirado um snapshot do banco
  • Só linhas cujo nome inteiro é um UUID são tocadas; se o nome real já existir, as duas linhas são mescladas, e jogadores normais nunca são renomeados
v1.9.54 Site 2026-10-03

Rankings: os dez melhores de nove categorias em uma tela

  • É o "ranking detalhado" que você pediu. A lista suspensa de ordenação da lista de jogadores mostra uma dimensão por vez, então comparar "quem mais minerou" com "quem mais morreu" exigia ficar alternando. O /ranking reúne os dez melhores de nove categorias em uma única tela
  • Um cartão por categoria, com posição, avatar, nome e o valor daquela categoria —
  • os números são idênticos, caractere por caractere, aos da lista de jogadores, porque os dois leem o mesmo código de formatação. Clique em um nome para abrir a página do jogador
  • O link «Ver tudo» no topo de cada cartão abre a lista completa já ordenada por essa coluna (?sort=). A entrada é o botão «Rankings» abaixo do título da lista de jogadores. Categorias sem dados não geram cartão vazio, e os bots continuam excluídos como antes
v1.9.53 Site 2026-10-03

O fundo do perfil agora pode ser arrastado

  • Nos perfis com banner dá para segurar o clique e arrastar a foto de fundo — como empurrar uma paisagem impressa, com o cabeçalho, o avatar e o nome firmes por cima
  • Só a área de cima (o cabeçalho) responde. Os cartões, tabelas e botões abaixo funcionam normalmente e a seleção de texto continua livre; clicar num botão nunca inicia o arrasto
  • Ao soltar, tudo volta ao lugar; ao chegar na borda, para (fica uma pequena margem em volta) para a foto nunca sair da tela nem mostrar a cor de fundo
  • Somente mouse e trackpad. Telas de toque e quem usa “reduzir movimento” ficam de fora e se comportam como antes
v1.9.52 Site 2026-10-03

Os “jogadores desconhecidos” vão se consertar sozinhos

  • Algumas linhas mostram “Jogador desconhecido · 87274f” — essa string é, na verdade, o UUID dele. O cache de nomes do servidor dura cerca de um mês, então depois de uma pausa longa o mod não consegue resolver o nome e envia o UUID
  • O problema é que essa linha nunca podia se corrigir: quando o jogador voltava e o servidor reconhecia o nome, a renomeação esbarrava na restrição de unicidade (quase sempre já existia uma linha com o nome real), o erro era engolido e a linha continuava com o UUID
  • Agora os dois caminhos funcionam: se o nome real estiver livre, renomeamos e levamos sessões, conquistas e skin junto; se estiver ocupado, fazemos a fusão — tempo somado, progresso unido, primeira/última visita ampliadas
  • Não precisa fazer nada: conserta-se no próximo login. O log de sincronização registra “adopted=N”, visível em Ferramentas do sistema
v1.9.51 Site 2026-10-03

Seu avatar agora aparece em todo lugar; histórico de login paginado; botões claros corrigidos

  • O avatar que você enviou só aparecia no seu próprio perfil — todos os outros avatares do site passavam por outro caminho, que não sabia do seu envio. As listas de jogadores, os comentários e a navegação agora também o usam. Quem nunca enviou nada continua igual
  • O histórico recente mostrava 30 linhas de uma vez. Agora são 10 por página, com o mesmo paginador do resto do site (oculto quando há só uma página)
  • O botão «expandir todas as insígnias» parecia cinza e desativado — um problema de especificidade: o tom azul do botão claro perdia para a camada branca base, e o próprio fundo dele também era apagado. Corrigido
  • O espaço vazio sob a coluna esquerda de um perfil: agora a coluna esquerda estica até a altura da direita, e o cartão de classificação preenche o resto. Não sobra vazio, com as insígnias abertas ou fechadas. As notas do radar também vêm recolhidas
v1.9.50 Site 2026-10-03

Vidro líquido reescrito conforme a referência: desta vez é vidro de verdade

  • A versão anterior era só "um mapa de gradiente + um deslocamento", e nenhum ajuste deixava parecido. Comparar linha a linha com a referência mostrou três peças faltando; as três estão aqui agora
  • A refração agora segue óptica real: espessura do vidro, largura do chanfro, índice de refração (1,0-3,0) e a superfície arredondada entram no cálculo, e é isso que dá à borda o efeito de lupa do "vidro grosso"
  • Uma camada especular foi adicionada — um reflexo ao longo da borda voltado para uma direção. É o traço mais reconhecível do vidro líquido e a versão anterior não tinha nenhum
  • A saturação volta depois do deslocamento (a refração acinzenta as cores) e um leve suavizado é aplicado. O desfoque continua em 0,3 px: mais que isso e os pixels vizinhos deixam de diferir, apagando a refração
v1.9.49 Site 2026-10-03

Agora você pode recortar seu avatar: arraste, e o que está na moldura é o resultado

  • Antes você enviava a imagem inteira e o site a reduzia pelo centro — se o rosto estivesse de lado, era isso. Agora, ao escolher uma imagem, abre-se uma moldura de recorte: arraste para reposicionar, roda ou controle para ampliar, e o que estiver dentro da moldura é o seu avatar final
  • A exportação é 512×512 (o mesmo limite usado no servidor) em WebP. Imagens pequenas nunca são ampliadas — isso só as deixaria mais borradas, então são recortadas no próprio tamanho. A moldura encolhe sozinha em telas estreitas, então funciona no celular também
  • Dois tipos de imagem são deixados intactos de propósito: GIFs animados (recortar manteria só um quadro e mataria a animação) e SVG — ambos seguem o caminho antigo. Se algo falhar durante o recorte (navegador sem suporte, memória insuficiente), o arquivo original é enviado — você nunca fica preso em "escolhi um arquivo e nada acontece"
  • Banners não são recortados — são largos por natureza e deixá-los quadrados não faria sentido. A moldura só aparece ao enviar um avatar em Eu → Meu perfil.
v1.9.48 Site 2026-10-03

O vidro fosco cai um nível em telas estreitas: as travadas no celular devem melhorar

  • A travada na página de perfil mobile não vinha de uma animação mal escrita, mas do fato de que o próprio desfoque custava caro: cada cartão carregava blur(32px) saturate(180%), e nesta página há sete ou oito superfícies de vidro visíveis ao mesmo tempo — cada quadro rolado precisava reamostrar todos os pixels atrás delas
  • A diferença entre 32px e 14px é quase invisível a olho nu — os cartões já ficam sobre branco a .70–.78 e o desfoque só suaviza a foto atrás; já o custo de amostragem cresce aproximadamente com o quadrado do raio. A saturação também cai de 180% para 150%; nada nesta página precisava de cores mais vivas
  • Apenas telas estreitas caem um nível: o desktop não mudou, nenhum pixel se moveu. É uma mudança puramente de desempenho que você quase não verá — mas rolar no celular vai parecer bem mais fluido
  • Só faixas estreitas são afetadas; no desktop nada mudou, nem um pixel. É uma alteração puramente de desempenho, praticamente invisível — mas a rolagem no celular ficará bem mais suave
v1.9.47 Site 2026-10-03

A página de status no celular ficou bem mais curta; a lista de banimentos não repete mais "QQ não vinculado" em cada linha

  • No celular, cada linha de serviço quebrava em duas ou três linhas. O motivo era concreto: a linha era uma grade de três colunas cujas larguras mínimas somavam 504 px, enquanto a viewport de celular tem apenas 492 px — por muito pouco não cabia, então cada linha era forçada a quebrar. Telas estreitas agora usam duas colunas com a observação em sua própria linha, encurtando mais de 500 px da página
  • Os espaçamentos dos painéis, a barra de disponibilidade e os cartões de nó também foram apertados um nível em telas estreitas. Essas mudanças ficam apenas em um bloco de estilo dentro da própria página de status — nenhum pixel se move nas outras páginas
  • Na lista de banimentos, cada linha trazia a mesma frase "QQ não vinculado" abaixo do nome do jogador, fazendo a tabela parecer quebrada. Descobri que a chave "ocultar QQ na página de banimentos" do painel era calculada e nunca usada — a configuração sempre esteve morta
  • Agora os três lugares respeitam essa chave: a linha da lista, o selo QQ e a dica no avatar, e o detalhe expandido. Os motivos de banimento ainda estão fixos em chinês (os dez idiomas mostram chinês); vou tratar disso separadamente
v1.9.46 Site 2026-10-03

As imagens de fundo agora se movem e se afastam de leve do mouse

  • Agora ha suporte a fundos GIF animados. Nunca foi "sem suporte", e sim "com suporte e depois achatado": todo envio era recodificado para WebP, e decodificar um GIF devolve apenas o primeiro quadro, entao a animacao chegava como imagem parada
  • A correcao: um GIF de varios quadros e gravado como veio, sem recodificar, e a animacao sobrevive. O preco e que fundos animados nao sao redimensionados para 1920x1080 —— recodificar mataria a animacao, e uma escolha deliberada
  • O fundo agora acompanha o mouse: ao mover o ponteiro, a camada de fundo desloca ate 10 pixels no sentido contrario, dando a foto uma sensacao de profundidade
  • Cada quadro altera apenas uma variavel CSS, entao a foto nunca e redesenhada; quando o ponteiro para, o laco termina e uma pagina parada custa exatamente o mesmo que antes. Somente mouse e trackpad, e totalmente desligado com movimento reduzido
v1.9.45 Site 2026-10-03

A cruz no botao Voltar: quatro rodadas, e a causa estava dentro de um comentario

  • A cruz sumiu. Era uma mancha clara que o navegador deixa na borda superior central quando amostra o fundo de uma caixa pequena —— este botao tem apenas 58x35, entao a mancha ocupa uma parte visivel; num cartao grande a mesma mancha se dilui e nao aparece
  • A correcao: este botao pequeno nao amostra mais o fundo, e seu tom subiu de 8 % para 14 % para manter a transparencia. O custo e zero: com e sem refracao, este botao difere em 0 de 1.766.688 pixels (diferenca maxima por canal: 1)
  • A camada realmente complicada veio depois: as regras estavam certas mas nao faziam efeito. Ao citar literalmente o CSS de referencia dentro de um comentario, escrevi /* 6% */ —— comentarios CSS nao se aninham, esse */ fechou o comentario externo cedo demais, a } seguinte fechou a regra cedo demais, e o analisador engoliu todas as regras seguintes
  • Esse comentario defeituoso estava la desde 1.9.42, entao por tres versoes o vidro dos botoes ficou sem seu brilho interno e sua sombra externa —— agora ambos voltaram. A licao virou teste: nunca coloque num comentario algo que o encerre cedo demais (a mesma armadilha ja me pegou duas vezes em PHP)
v1.9.44 Site 2026-10-03

Aquela linha piscante ao mover o mouse: oito versões depois, a causa era uma elevação de 2px no hover

  • A causa não era o brilho nem a área do vidro fosco, mas uma regra de hover do site inteiro: cada vez que o ponteiro cruzava um cartão, ele subia 2px. Os cartões têm fundo fosco, então no instante em que um se move o navegador precisa reamostrar a imagem atrás dele — e essa amostragem é cortada em blocos; as emendas dos blocos são a linha
  • Cinco becos sem saída pelo caminho (mover o brilho do fundo para um pseudo-elemento, passá-lo para transform, torná-lo filho real, tirá-lo do vidro, apagá-lo por inteiro). Todos pareciam «dever» funcionar e nenhum tocava a causa
  • A correção: as superfícies de vidro não se movem mais no hover — respondem com borda e sombra. Duas barras fosca de largura total (a barra de navegação e a linha de nome fixada) também perderam o desfoque; amostragem de grande área é a mais cara
  • Duas coisas visíveis saíram do mesmo lote: o brilho que seguia o mouse foi removido por inteiro (incomoda demais) e o vidro dos botões foi reescrito nas três camadas da referência (refração e tinta separadas)
v1.9.43 Site 2026-10-03

O botão de login do painel sumiu: um bug de especificidade que eu introduzi na versão anterior

  • O vidro dos botões adicionado na v1.9.42 tinha um erro de especificidade: a camada base, com tinta branca a 8 %, contava como «cinco classes mais dois elementos», enquanto o gradiente azul-marinho do botão primário contava apenas como «três classes» —— então a camada base sempre vencia e o gradiente nunca era desenhado. Além disso, background: none no mesmo bloco apagava o gradiente do próprio botão primário. Fundo azul-marinho com texto branco virou branco no branco, e o botão desapareceu por completo
  • Correção: botões de marca sólidos (o botão primário) não participam mais do vidro. É um botão azul-marinho com texto branco; esse tratamento de vidro só combina com botões claros. O botão primário voltou ao estilo sólido original
  • O mesmo bug também estava engolindo em silêncio o realce no hover (contava «quatro classes» e perdia para cinco) —— ou seja, o que a versão anterior prometia, «passar o mouse agora faz diferença», nunca chegou a valer. Agora vale
  • Mais um efeito colateral: background: none também apagava os botões carregando, e as camadas de vidro os excluem —— o botão ficava totalmente transparente nesses segundos. Agora eles recuperam o fundo
v1.9.41 Site 2026-10-02

O brilho que seguia o mouse foi removido

  • O que foi removido: a luz azul-fria que seguia o cursor sobre os cartões. Foi tudo embora — as variáveis, o interruptor, a camada, o script, não sobrou um fragmento
  • Por quê: você relatou o mesmo problema quatro vezes — «uma área pisca assim que o mouse se move» / «uma linha horizontal». Eu reescrevi de quatro formas (pintado no fundo do cartão, movido para um pseudo-elemento, transformado em elemento filho de verdade, movido para uma camada independente de página inteira) e nenhuma resolveu. Sua última palavra foi «apaga o brilho que segue o mouse, balança demais» — então foi apagado
  • Um efeito colateral: sem ele, mover o ponteiro não provoca mais nenhuma repintura. Essa era também a última peça do quebra-cabeça da linha piscante — enquanto algo muda quadro a quadro dentro de um elemento de vidro fosco, o navegador precisa recalcular sem parar a imagem atrás dele, e recalcula em blocos: as emendas entre blocos são a linha que você via
  • Nada mais mudou: a transparência do vidro, a primeira tela só com a foto, a linha do nome fixada e os botões de vidro líquido continuam iguais. Quem não usa mouse e quem usa o dedo nunca viram esse brilho, então para essas pessoas esta atualização não muda nada
v1.9.36 Site 2026-10-02

O brilho não pula mais entre elementos e o vidro líquido dos botões ficou mais forte

  • O brilho não «pula» mais: mover o ponteiro de um cartão para outro teletransportava o brilho —— o antigo sumia e o novo aparecia de uma vez. Agora o antigo se dissolve onde está enquanto o novo surge sob o ponteiro, com o centro deslizando suavemente; tudo leva cerca de 180ms
  • Por que não uma transição CSS: transition substitui uma declaração inteira e não há como adicioná-la a uma única propriedade; fazer assim exigiria um seletor que também sobrescrevesse as animações de entrada e de hover dos cartões, e a entrada ao rolar passaria de «surgir e subir» para um corte seco. Por isso o script suaviza um único número (a intensidade do brilho) quadro a quadro, e para assim que ele se estabiliza
  • O vidro líquido dos botões ficou mais forte: o deslocamento de refração vai de 14 para 50, a faixa do chanfro foi alargada e foram acrescentadas as coisas que realmente fazem parecer vidro —— um brilho especular na borda superior, franjas de dispersão quente e fria nas bordas esquerda e direita, e um lustro interno. Ao mesmo tempo o desfoque caiu de 1,5px para 0,8px (o desfoque apaga exatamente o detalhe de que o deslocamento precisa)
  • A ressalva honesta continua: só Chrome e Edge renderizam, e a refração só aparece quando há algo para refratar —— sobre um cartão branco é praticamente zero, já sobre uma foto de banner com contraste dá para ver. O interruptor fica na administração, em «Configurações do sistema → Efeitos visuais», e vem desligado
v1.9.35 Site 2026-10-02

A primeira tela agora é só a foto, o conteúdo sobe ao rolar e os botões ganharam vidro líquido

  • A primeira tela virou um herói: numa página de jogador com banner, ao entrar aparecem apenas o cabeçalho da página e a foto de fundo preenchendo a janela — a área de conteúdo não é exibida de forma alguma. Uma volta da roda para baixo faz o bloco de conteúdo surgir em fade e subir (ainda com 28 % de transparência); voltando ao topo ele se recolhe de novo, quantas vezes quiser
  • Por que os próprios blocos de conteúdo se movem, e não um contêiner: qualquer ancestral com opacidade menor que 1 cria uma nova raiz de backdrop, e cada superfície backdrop-filter lá dentro passa a amostrar um fundo vazio — o vidro fosco quebra por completo. Um fade bloco a bloco não tem esse ancestral. Os dois únicos position: fixed do corpo (a camada de fundo e a linha de nome fixada) estão fora desse conjunto, então deslocá-los é seguro
  • Refração de vidro líquido nos botões (um novo interruptor em Admin → Configurações do sistema → Efeitos visuais, desligado por padrão): a borda do botão curva levemente o padrão atrás dele, como um pedaço de vidro grosso. Usa um mapa de deslocamento SVG mais backdrop-filter; o mapa é desenhado uma única vez com canvas ao abrir a página e não há script por quadro
  • Só Chrome e Edge renderizam: Safari e Firefox não suportam esse recurso de CSS e falham em silêncio (sem erro e sem desenho), então caem no vidro fosco atual. E refração precisa de algo para refratar — sobre uma superfície lisa como um cartão branco o efeito é praticamente nulo; só aparece sobre algo com detalhe de claro e escuro, como a foto do banner
v1.9.34 Site 2026-10-02

Os cartões deixam passar um pouco mais da foto, o brilho do mouse ficou menor e a linha fixada desliza

  • O que mudou: numa página de jogador com banner, os cartões grandes agora deixam passar cerca de 28 % da foto em vez de 5-10 % (dá para ver), e as casinhas de estatística e o cartão do radar foram clareados na mesma medida
  • Por que as casinhas de estatística pareciam ter duas cores: o brilho que segue o mouse era uma mancha azul-fria de 320px de raio com alpha .22. Quando cobria a metade esquerda do cartão, a casinha 1 media rgb(189,193,197) e a casinha 4, fora da mancha, rgb(245,246,247) —— 56 níveis de diferença numa mesma linha. Agora a mancha tem 200px com alpha .10, e as casinhas não acendem mais sozinhas (quem acende é sempre o cartão mais externo); a mesma linha mede 3 níveis de diferença
  • A outra metade do «piscar»: mover o ponteiro de um espaço vazio do cartão para uma casinha fazia o alvo do script pular entre o cartão inteiro e aquela casinha, e o brilho ia de uma mancha grande para um ponto pequeno. Tirar as casinhas do brilho elimina esse salto
  • Fixar agora tem um deslize: a linha do nome desce 10px e surge em fade sob a navegação em 180ms. Com «reduzir movimento» ligado, essa animação e o efeito de mola dos botões são desligados (o brilho do mouse continua)
v1.9.33 Site 2026-10-02

A linha do nome agora se fixa abaixo da navegação ao rolar

  • O que mudou: numa página de jogador com banner, ao rolar para baixo a linha «avatar + nome + nível + emblemas» se fixa logo abaixo da navegação do site enquanto os cartões passam por baixo. A assinatura não faz parte dessa linha e rola como antes; o botão Voltar se fixa junto com o nome
  • Por que `position: sticky` não dava conta: o pai desta linha é o .cdr-container, que só tem a altura do cabeçalho da página; o alcance do sticky fica preso ali —— passando o cabeçalho, a linha vai embora com o resto. Por isso a linha é position: fixed, e um script insere um espaçador de mesma altura onde ela ficava (fixed tira a linha do fluxo; sem o espaçador a página inteira salta 86px no instante em que ela fixa)
  • Fixar também exige inverter a cor do texto: esta linha normalmente leva texto branco sobre a foto do banner, mas fixada ela fica sobre vidro claro, e branco sobre branco é invisível (uma versão medida mostrava o avatar e o emblema «online» certos e a célula do nome totalmente vazia). O estado fixado então troca nome, nível e emblemas para a tinta usada sobre superfícies de vidro
  • Só afeta páginas de jogadores que enviaram banner —— páginas sem banner (por exemplo /players/zlc) não foram tocadas em um único byte
v1.9.32 Site 2026-10-02

O brilho do ponteiro agora ilumina só a superfície que deve

  • A causa era a herança das propriedades personalizadas. O script coloca .is-lit no cartão sob o ponteiro, e --glass-spot desce então pela cadeia de herança até cada .stat-mini desse cartão —— um único interruptor virava sete ou oito superfícies acesas. Foi exatamente o que você viu: «meu mouse está em outro lugar, por que acendeu tudo?». A prova: a barra de status da sonda ganhou um contador spot= que não conta quantos elementos têm .is-lit, mas quantos valores --glass-spot calculados não são transparentes —— antes da correção, parar o ponteiro na área vazia do título de um cartão dava lit=1 spot=8/27
  • A correção: cada superfície de vidro agora reinicia --glass-spot para transparent por conta própria, cortando a cadeia de herança ali; só a superfície realmente sob o ponteiro recebe .is-lit do script. Depois da mudança: spot=1/27
  • Uma segunda armadilha corrigida de passagem: esse reinício tem a mesma especificidade da regra .is-lit e vem depois, então por «o último vence» um simples body.cdr-body .is-lit seria totalmente sobrescrito e o brilho sumiria (medido lit=1 spot=0/27). Por isso a regra .is-lit precisa listar os quatro seletores e elevar sua especificidade. Pular essa etapa faz o bug ir de «acende demais» direto para «não acende nada»
  • As coordenadas também passaram a ser escritas de forma síncrona ao entrar num elemento novo, em vez de esperar apenas o requestAnimationFrame: sem isso o primeiro quadro não tem coordenadas e o brilho pisca no centro do cartão antes de saltar para o ponteiro. Agora um .is-lit é uma única superfície acesa —— onde está o ponteiro, ali está a luz
v1.9.31 Site 2026-10-02

O vidro líquido ganhou dois toques táteis: brilho que segue o ponteiro e botão com mola

  • Brilho que segue o ponteiro: quando o ponteiro se move sobre uma superfície de vidro, uma pequena poça de luz branco-azulada fria o acompanha —— só o cartão sob o ponteiro acende, o resto fica como estava. É uma camada radial-gradient pintada no fundo do cartão, lendo --glass-mx / --glass-my conforme o script os escreve. Sem nós extras, sem mexer em contexto de empilhamento e sem atrapalhar o desfoque do cartão. No tema claro não se usa branco, e sim branco-azulado frio: um cartão branco (rgb 229~245) sobe no máximo 6 níveis com luz branca, algo que o olho não percebe
  • Faixa de foto mais alta no cabeçalho: o padding inferior de .page-head passou de 30px para 160px (cerca de 317px no total), empurrando toda a fileira de cartões brancos para baixo: o avatar, o nome e o selo de nível agora ficam diretamente sobre a imagem do banner —— é o «mostrar mais o fundo» que você pediu. Só altura, sem conteúdo novo, e cai para 72px em telas pequenas. O conteúdo não foi deslocado em bloco de propósito: isso desperdiçaria a parte mais escura da máscara superior e tornaria ilegíveis as linhas esbranquiçadas
  • Botões com mola: ao pressionar comprime para .955 e ao soltar volta com cubic-bezier(.34, 1.56, .64, 1) —— o segundo ponto de controle tem y = 1.56 > 1, então a curva ultrapassa o alvo e retorna; esse excesso é a «mola». CSS puro, sem JavaScript e sem motor de física
  • O fallback de prefers-reduced-motion agora reduz apenas movimento autônomo: a mola do botão (que quica sozinha após soltar) vira uma transição curta comum, mantendo o retorno ao pressionar, enquanto o brilho do ponteiro é mantido —— seguir o ponteiro é manipulação direta: quem se move é o ponteiro, não a página. Sua própria referência de vidro líquido diz exatamente isso: remover o deslocamento, manter o desfoque e o brilho. É também a única maneira de esta máquina ver o brilho: os efeitos de animação do Windows estão desligados aqui (MinAnimate = 0 / DragFullWindows = 0 / VisualFXSetting = 2), e os navegadores relatam isso fielmente como reduce —— condicionar o brilho a isso o esconderia para sempre
  • Tudo acima vale apenas para perfis com banner enviado (o bloco continua dentro de $pubBgCss !== ''); qualquer outra página —— inclusive perfis sem banner —— não mudou um único byte, e quatro asserções da suíte garantem isso
  • Uma nota honesta: os dois são efeitos de «sensação» e não aparecem em captura estática —— é preciso realmente mover o ponteiro sobre um cartão e realmente apertar um botão. Vale também reativar as animações do Windows (Configurações → Acessibilidade → Efeitos visuais → Efeitos de animação), senão seu navegador avisa a todos os sites que o usuário pediu menos movimento
v1.9.30 Site 2026-10-02

Vidro líquido refeito: a cor dos cartões não muda mais ao rolar

  • A causa não estava no motor de renderização. As páginas de perfil penduravam a imagem do banner no body com background-attachment: fixed. Essa declaração significa «a imagem fica presa à viewport», e ela não é uma camada composta própria —— o navegador precisa reamostrá-la a cada quadro para o backdrop-filter de cada cartão; quando a janela de amostragem e a posição de rolagem se desencontram, a cor salta. Ao mesmo tempo os cartões se movem e a imagem não, então cada cartão translúcido varre a foto inteira. As duas coisas juntas produziam «às vezes escuro, às vezes claro, às vezes normal»
  • Correção do piscar durante a rolagem: o fundo saiu do body para uma camada dedicada position: fixed (body::before, z-index: -1, pointer-events: none, will-change: transform). Uma camada dedicada pode ser promovida a camada composta, então a fonte de amostragem é um único bitmap já composto durante toda a rolagem
  • Correção da diferença parado: agora os cartões definem a própria cor. A base é uma extrapolação linear das medições —— variação ≈ (1−alpha)×53, então ficar abaixo de 4 níveis exige alpha ≥ .925. Os cartões grandes vão de 72 % → 95 % no topo e 60 % → 90 % na base; as pastilhas de 80 %/70 % → 97 %/94 %; o cartão de radar de 76 %/66 % → 96 %/92 %. A foto ainda transparece 5~10 %, e é daí que vem o tom do vidro
  • O vidro agora é um material multicamadas: camada de ruído + degradê vertical + brilho rasante nas bordas + chanfro de refração interno, com cada parâmetro exposto como variável (--glass-blur --glass-sat --glass-highlight --glass-displacement --glass-noise). Uma nota honesta: refração real com SVG feDisplacementMap não é possível aqui —— Chromium e Safari só aceitam funções de filtro no backdrop-filter, nunca url(#svgfilter); um chanfro interno aproxima esse visual em vez de fingi-lo
  • Resultado: no mesmo ponto a diferença ao rolar caiu para apenas 3~6 níveis (18 na versão anterior, 100 no início), com brilho geral entre 229 e 245; no tema escuro são só 1~3 níveis. O halo text-shadow das superfícies de vidro também foi removido —— com o cartão estável ele não ajuda mais e só come os traços dos textos de 12 px
  • Também corrigido «os rótulos do radar de habilidades são difíceis de ler»: nenhuma transparência foi tocada. Os sub-rótulos «média do servidor» foram apenas de .76rem para os .84rem da linha principal, de cinza atenuado para a cor de texto, com um pouco de peso. A causa real é que CJK de 12 px e 13 px seguem caminhos de antialiasing diferentes no Windows. Tudo isso afeta apenas perfis com banner enviado; páginas sem banner não mudaram um único byte
v1.9.29 Site 2026-10-02

O brilho dos cartões não muda mais ao rolar a página

  • A causa não era um bug de renderização. As páginas de perfil usam background-attachment: fixed no banner: a imagem fica presa à viewport enquanto os cartões rolam por cima dela —— cada cartão translúcido varre a foto inteira: céu escuro deixa o cartão apagado, prédios claros deixam o cartão lavado. O mesmo cartão media de rgb(99,107,125) a rgb(201,197,200) conforme a posição, 100 níveis de diferença
  • A correção é adensar o próprio vidro, porque alpha é a única alavanca que preserva transparência e estabilidade ao mesmo tempo: os cartões grandes vão de 56 % → 72 % no topo e de 34 % → 60 % na base; as pastilhas de estatísticas de 76 %/60 % → 80 %/70 %; o cartão de radar de 70 %/52 % → 76 %/66 %. A ordem de densidade (cartões grandes mais claros, pastilhas mais densas) não muda
  • Resultado: no mesmo ponto, a variação ao rolar caiu para apenas 14 níveis em vez de 47, e o brilho geral fica entre 163 e 206 —— uma superfície fosca claramente clara, e não um cinza turvo. O tema escuro foi adensado na mesma medida (o nível 82 %/72 %), onde a variação restante é de apenas 4~8 níveis
  • Só afeta perfis com banner enviado. Páginas sem banner (como /players/zlc) não emitem essa folha de estilo: nem um único byte mudou nelas
v1.9.28 Site 2026-10-02

«86 horas de jogo por dia» foi corrigido

  • A fórmula antiga era «tempo de jogo acumulado ÷ dias com sessões registradas» —— o numerador cobre dez anos, o denominador apenas os 11 dias desde 2026-09-12. Dividir duas épocas diferentes dava «86 horas por dia». O numerador nunca esteve errado; faltava a maior parte do denominador
  • O denominador agora é o seu total de dias ativos: mensagens de chat, conquistas desbloqueadas e sessões de jogo são unidas por dia —— 423 dias nesta conta. 941 horas ÷ 423 dias = 2 horas por dia, finalmente a ordem de grandeza certa
  • Mais duas correções de passagem: o número de logins passou a usar o total acumulado (1.655, quando 929 jogadores antigos mostravam 0), e a sessão mais longa não pode mais exibir o par impossível «21 minutos de média, 0 hora como máxima»
  • Três conquistas também foram desbloqueadas: 7 / 30 / 100 dias ativos eram impossíveis de obter por causa desse mesmo denominador —— havia apenas 16 dias com sessões registradas em todo o servidor, os limites ficavam fora de alcance
  • Auditoria de segurança, parte um: várias falhas realmente exploráveis foram fechadas —— escapes de CSS podiam esconder uma URL externa dentro de um SVG enviado (um avatar servia para vazar o IP dos visitantes), o painel administrativo podia apagar arquivos fora de uploads, o login tinha um redirecionamento aberto, um script dentro de um arquivo de backup podia se instalar como webshell, e dois scripts de depuração locais estavam acessíveis em produção
  • Auditoria de segurança, parte dois: reforço da API e da administração —— uma lista vazia não pode mais apagar de uma vez todos os banimentos do servidor, os relatórios têm limite de linhas, os nomes da lista branca são validados, uma única linha de chat com defeito não derruba mais o lote inteiro, e erros de banco de dados não expõem mais detalhes aos visitantes
v1.9.27 Site 2026-10-02

A letra miúda do radar agora dá para ler

  • A letra miúda do painel «radar de habilidades» (nomes dos eixos, os números à direita, as linhas de «média do servidor» e a nota embaixo) ficava sobre um vidro a 34 % cujos pontos mais escuros davam só 3,3 : 1 de contraste —— abaixo dos 4,5 : 1 que a letra miúda exige. É esse o «não dá para ler» que você relatou, e foi um descuido meu na versão anterior
  • Duas mudanças: a cor do texto secundário ficou um degrau mais escura e o painel do radar ganhou um fundo próprio —— quase todas as linhas desse cartão são letra miúda, então ele não deveria dividir a mesma transparência com os cartões grandes
  • Os cartões grandes ficaram intactos: o cartão de skin, o de conquistas e o rodapé continuam em 34 %, a imagem atrás continua aparecendo e as caixinhas de estatísticas mantêm o fundo mais denso
  • O tema escuro recebeu o mesmo tratamento. E isso continua acontecendo só nas páginas cujo dono enviou um banner —— páginas sem banner não se moveram um pixel
v1.9.26 Site 2026-10-02

Um nível mais translúcido, e o texto continua legível

  • Perfis: o topo vai de 62% para 56% e a base de 40% para 34%. Agora a imagem atrás aparece de verdade —— as faixas verticais das luzes, o horizonte e as silhuetas de blocos transparecem, em vez de uma placa de vidro fosco
  • «Ver a imagem» e «ler o texto» brigam entre si, então foram tratados em separado: as caixinhas de estatística (as áreas de letra miúda como «tempo jogado» e «logins») mantêm um fundo mais denso só para elas (76% → 60%), enquanto os cartões grandes continuam bem claros. O pequeno mais sólido, o grande mais transparente —— o inverso da hierarquia usual da Apple, e de propósito
  • O texto ganhou um halo bem tênue no mesmo sentido (text-shadow) —— invisível quando o fundo é claro, aparece só quando é escuro: a tipografia passa a carregar o próprio fundo local. É isso que permite chegar aos 34%
  • O tema escuro recebeu vidro escuro e halo escuro correspondentes. E isso continua acontecendo apenas nas páginas cujo dono enviou um banner —— as páginas sem banner não se moveram um pixel
v1.9.25 Site 2026-10-01

Vidro mais translúcido e mais parecido com o da Apple

  • Perfis: acabou o «68% de branco» uniforme —— agora é um degradê vertical, claro em cima e mais transparente embaixo (62% → 40%), com o desfoque gaussiano de 22 px para 32 px, mais saturate(180%) e brightness(1.12). O vidro no estilo Apple capta a cor de trás e a realça um pouco; só desfocar dá apenas aparência de fosco
  • O vidro agora tem uma borda de refração em todo o contorno —— um brilho rasante de 1 px no topo e um traço interno bem tênue. A sombra foi dividida em duas camadas (uma sombra de contato justa e uma ambiente ampla), para a lâmina parecer flutuar sobre a imagem em vez de ficar colada como papel
  • Corrigimos algo que só apareceu depois de clarear o vidro: rótulos secundários como «tempo jogado» e «logins» estavam quase invisíveis —— o cinza deles chega a apenas 2,5:1 sobre branco translúcido. Agora usam um tom mais escuro dentro do vidro, enquanto o texto miúdo que fica direto sobre o banner não mudou
  • O tema escuro ganhou um conjunto correspondente de valores de vidro escuro. E tudo isso continua acontecendo apenas nas páginas cujo dono enviou um banner —— as páginas sem banner não se moveram um pixel
v1.9.24 Site 2026-10-01

Os perfis agora são «vidro líquido»

  • Os cartões, o painel de skin, os seis quadros de estatísticas e todo o rodapé agora são vidro translúcido (68% de branco + um desfoque gaussiano de 22 px), com o banner aparecendo desfocado atrás. O texto continua escuro, então dá para ler por cima da imagem; no tema escuro ele vira vidro escuro
  • O cabeçalho do cartão de conquistas agora tem Recolher tudo / Expandir tudo, que fecha as 8 categorias de uma vez —— não é mais preciso rolar até o fim dos 98 selos para apertar aquele botão
  • A gaveta de administração no canto inferior direito ganhou uma quarta aba, Avatares / Planos de fundo, onde aprovar ou recusar os envios pendentes. São os mesmos dados de «Jogadores e dados → Avatares / planos de fundo»: revisar de um lado ou do outro dá no mesmo
  • Tudo isso só acontece nas páginas cujo dono enviou um banner —— as páginas de personagem sem banner não se moveram um pixel (comparei as capturas de antes e depois pixel a pixel)
  • Quando o vidro não está disponível (navegadores antigos) voltam os cartões opacos de antes. Já a preferência do sistema «reduzir transparência» não é seguida de propósito —— o Windows do dono do site está com os efeitos de transparência desligados, então segui-la faria com que ele nunca visse o vidro
v1.9.23 Site 2026-10-01

Sua página de perfil agora pode preencher a tela

  • Fundo —— se você já enviou um banner, sua página de personagem usa essa imagem para preencher a janela inteira do navegador, com o avatar, o nome, o nível e a localização por cima. Páginas sem banner não mudam um pixel
  • Localização —— em Eu → Personalização você pode escolher um país (e uma província, se escolher a China); ela aparece no seu perfil ao lado de «offline / posição #8». Sem escolha, nada é exibido
  • Os avatares da lista de jogadores agora preferem o que você mesmo enviou. Antes, o avatar oficial da skin era sempre buscado num servidor estrangeiro, o que quase nunca carrega por aqui —— daí os quadradinhos de letras coloridas
  • Avatares e fundos enviados passam por revisão antes de entrar no ar. Enquanto esperam, a imagem anterior continua aparecendo, então nunca fica uma página «meio nova»; já a remoção vale na hora
  • O limite de envio é maior: banners de até 3840×2160 (antes 1920×1080) e agora aceitamos SVG —— os SVGs são sanitizados: scripts, referências externas e HTML embutido são removidos
v1.9.22 Site 2026-10-01

Janelas novas · e os banimentos antigos de volta

  • As 16 janelas do site agora usam o diálogo próprio. Antes eram as janelas do navegador, encimadas por «cloudridge.cn afirma», o que destoava no celular e ignorava completamente o estilo do site. Agora títulos, textos e botões são nossos; ações destrutivas ganham botão vermelho, Esc cancela, Enter confirma e o foco volta ao botão clicado
  • Os 8 jogadores e 3 IPs que ainda estavam banidos quando o servidor antigo fechou foram restaurados: a página pública agora mostra 12 jogadores e 7 IPs. Nomes, IPs, datas de banimento e responsáveis foram copiados exatamente dos arquivos, nada foi inventado. Um aviso: o mod apenas lê os arquivos de banimento do servidor e os reporta —— quem realmente é bloqueado no jogo continua sendo decidido pela lista do servidor, então é preciso que ele a recarregue
v1.9.21 Site 2026-10-01

Aquele «jogador desconhecido» era a mesma pessoa

  • A lista de jogadores sempre teve uma linha «未知玩家 · 000000» (jogador desconhecido), como se fosse uma quarta pessoa que ninguém contou. Agora está claro: o floodgate do servidor antigo dava aos jogadores Bedrock um UUID na faixa fictícia 00000000-0000-0000-0009-…, e o mod só podia informar um *nome* —— que naquele instante era justamente esse UUID. Na verdade era o birdzhonghuifei jogando no Bedrock, e a linha foi fundida com o seu dono
  • A regra da fusão: os contadores (tempo de jogo, logins, mortes, blocos minerados e colocados, distância) são somados, os progressos são unidos, e a primeira entrada usa a mais antiga das duas enquanto a última visita usa a mais recente —— carimbos de tempo nunca se somam. As nove medalhas daquela linha o dono já tinha, então as duplicadas foram descartadas. A tabela ficou uma linha menor e os números de birdzhonghuifei agora estão mais completos
v1.9.20 Site 2026-10-01

Pular direto para qualquer mês no calendário

  • A janela do calendário agora tem duas listas suspensas, ano e mês, no canto superior esquerdo: escolha o ano, escolha o mês e você está a dois cliques de qualquer mês —— não precisa mais clicar em ‹ mês a mês. Os botões de anterior/próximo e «Hoje» continuam lá, e as listas acompanham quando você navega
  • De quebra, corrigi um defeito de ordenação: ao ordenar por «primeira entrada», as linhas com data desconhecida subiam para as posições 1–4 e parecia que a tabela inteira estava quebrada —— «sem valor» não é o mesmo que «o mais antigo». Agora essas linhas descem para o fim da lista, nos dois sentidos
v1.9.19 Site 2026-10-01

Mais 229 mensagens de chat recuperadas

  • O log do plugin TrChat só começa em 2023-09-01, então faltavam trechos do fim de 2024. Três bancos CoreProtect de servidores antigos que nunca tinham sido importados guardavam 34,417 mensagens de 2024-07 a 2024-12; depois de remover as duplicadas, são 229 mensagens líquidas em 37 dias, a mais antiga de 2024-07-11
  • A deduplicação usa «este jogador já disse o mesmo com ±5 segundos de diferença» —— a mesma mensagem é registrada uma vez pelo TrChat e outra pelo CoreProtect, seus horários costumam diferir em um segundo e às vezes cruzam o minuto; comparar por minuto deixaria essas algumas dezenas entrarem de novo como duplicatas
  • Esses 37 dias não estavam vazios desde o início —— o TrChat havia registrado a maior parte; o que voltou são as linhas soltas que ele perdeu. Ao percorrer esses dias de julho a dezembro de 2024, a conversa aparece mais completa
v1.9.18 Site 2026-10-01

Os personagens secundários se abrem dentro da linha

  • As linhas da lista de jogadores com mais de um personagem agora começam com uma seta: recolhidas por padrão, e um clique abre cada personagem em sua própria linha, com seu tempo de jogo, número de logins, último acesso e estado (a linha principal é a soma, as secundárias os valores individuais). Outro clique recolhe
  • Buscar o nome de um personagem secundário abre essa linha automaticamente —— buscar Winter mostra os números dele ao lado dos de Fruity_oxygen, sem precisar adivinhar sob qual nome ele está. De passagem, um defeito antigo foi corrigido: ao ordenar por nome de jogador, o cabeçalho ficava com uma coluna a menos que o corpo e a tabela inteira saía do lugar
v1.9.17 Site 2026-10-01

Ranking por conta · três anos de conversas recuperados

  • A lista de jogadores agora mostra uma linha por conta do site: os personagens de uma mesma conta são somados (Fruity_oxygen e Winter viram uma linha, ElfinLettuc e Faithe também), enquanto quem nunca vinculou uma conta mantém a própria linha. O selo «N personagens» ao lado do nome mostra quem foi agrupado com quem — o ranking antigo separava a conta secundária da principal e fazia a secundária parecer tempo perdido
  • Nova página de conta (/accounts/<id>): cada personagem da conta aparece separadamente, com seu tempo de jogo e número de logins, e os números resumidos acima são a soma deles. A página é totalmente pública, sem precisar entrar. De passagem, um dado inválido foi limpo: um personagem apontava para um id de conta inexistente
  • Três campos que estavam presos em valores de preenchimento agora estão completos: visto por último (929 personagens diziam todos 2026-09-13), primeira entrada (936 igualmente falsos, 2026-09-13) e número de logins (apenas 291 no site inteiro, com 928 jogadores mostrando «—»). O «visto por último» vem da data de modificação dos arquivos de save do servidor; a primeira entrada e o número de logins vêm dos logs de todas as gerações do servidor. Agora wwwsum mostra honestamente 2024-08-22 e 7Strawberry 2024-03-07, e o total de logins subiu de 291 para 21.766
  • O painel de chat recuperou tudo desde a abertura do servidor: da primeira linha em 2022-12-16 até a entrada do mod com reporte ao vivo em 2026-09-25, são 174.457 mensagens e registros de entrada/saída (124.024 mensagens, 25.424 entradas, 25.009 saídas). Antes só havia histórico dos poucos dias com o mod instalado; agora qualquer dia clicado no mapa do site mostra a conversa daquele dia
  • O calendário marcava como clicáveis apenas os últimos 400 dias, então 492 dos 729 dias recuperados não abriam — restaurados, mas invisíveis. Agora todo dia com registros é clicável. Além disso, o número de «jogadores registrados» diferia em 2 entre a página inicial e a lista (791 contra 789); ambos agora usam a contagem por conta

As datas são a data de lançamento de cada versão. Achou um problema novo? Fale no fórum ou procure o dono do servidor.