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
v1.9.90 Site 2026-11-01

v1.9.90 · Novo layout da capa e a cena 3D voltou a arrastar

  • A capa foi reorganizada: o título ocupa linha própria, a projeção 3D fica à esquerda e os cartões de entrar no servidor e online agora ficam à direita. No celular tudo empilha em uma coluna.
  • Arrastar a cena 3D voltou a funcionar: duas camadas transparentes ficavam sobre o canvas e engoliam todos os eventos do ponteiro. Agora só botões e links recebem cliques; no resto dá para arrastar.
  • O modelo da capa agora é a sua projeção do buraco negro assada direto do arquivo (não mais feita à mão), com vidros, paredes e lajes na espessura real, então a estrutura vazada finalmente aparece.
v1.9.89 Site 2026-11-01

v1.9.89 · O buraco negro refeito

  • O buraco negro da capa foi refeito do zero: disco de duas camadas, funil muito mais fundo, um buraco real no centro, um anel luminoso de horizonte de eventos e quatro braços em espiral. Visto de cima agora parece um vórtice, não um bolo.
  • A inclinação da câmera subiu de 0.62 para 0.78 para olhar dentro do funil, e o modelo subiu para não cobrir o título nem os botões.
  • Corrigida uma sobreposição na capa: a faixa de nuvens cortava a caixa com o endereço do servidor e agora tem espaço próprio.
v1.9.88 Site 2026-11-01

Primeira dobra centralizada e o buraco negro agora é feito à mão

  • A primeira dobra agora tem título em cima, modelo no centro e botões embaixo; o cartão de jogadores foi para uma faixa abaixo.
  • O esquema do buraco negro tem 13,8 milhões de blocos em 565×565; na primeira dobra vira apenas ruído de cor. Foi refeito à mão: anéis concêntricos, pupila escura e aro mecânico, 5.700 blocos e 33 KB.
  • No celular continua o pôster estático (nova imagem do buraco negro, 54 KB); o renderizador só carrega ao tocar em Entrar em 3D.
v1.9.87 Site 2026-11-01

Complete a conta e confirme antes de trocar

  • Contas criadas com QQ precisam, no primeiro acesso, definir uma senha e verificar e-mail ou telefone antes de usar o site.
  • Trocar e-mail ou telefone agora exige primeiro o código enviado ao endereço ou número atual.
  • Trocar a conta de QQ vinculada agora exige a senha atual.
  • Se a conta entrar de um dispositivo novo, um aviso vai para o e-mail verificado.
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
v1.9.16 Site 2026-09-30

As requisições de saída agora verificam os certificados TLS

  • Todas as requisições HTTPS que o site faz para fora — host de skins, geolocalização por IP, gateway de SMS, servidor de e-mail, login pelo QQ e os botões de teste do painel — eram enviadas com a verificação de certificado desligada, então qualquer pessoa no caminho podia responder com um certificado autoassinado e tomar a requisição inteira. Agora todas verificam de verdade, contra um pacote de certificados raiz que acompanha o site (o da Mozilla, 121 raízes).
  • A parte do e-mail era a mais crítica: sem a verificação, alguém no caminho podia recolher a senha da caixa de correio e o texto completo de todas as mensagens. O certificado da caixa do 126 é válido, então o envio não é afetado.
  • Há um custo: quando o certificado remoto está realmente quebrado, a requisição agora falha com um erro em vez de conectar em silêncio. Os botões de teste do painel destacam esse caso separadamente como «não passou na validação do certificado». E se o pacote algum dia sumir, o código continua se recusando a voltar para a verificação desligada: ele simplesmente falha de forma mais clara.
  • De passagem, corrigido um defeito antigo: as entradas v1.9.6 e mod 1.6.0 do registro mostravam literalmente "title" como título — nunca tiveram nada além do corpo do texto, e a página renderiza um título incondicionalmente, então a chave ausente recaía no último segmento do próprio nome. Agora têm título
v1.6.6 Mod 2026-09-30

A lista de banimentos não diz mais «ninguém está banido» quando não dá para lê-la

  • Uma lista de banimentos vazia chegando ao site sobrescrevia todos os banimentos guardados. O mod devolvia um array vazio sempre que a leitura do arquivo falhava ou o formato estava errado, o que causava exatamente isso. Agora ele devolve null (um arquivo realmente inexistente continua significando «ninguém está banido») e só declara bans_authoritative=true quando tanto banned quanto banned_ips foram lidos. O lado do site ganhou a proteção correspondente; as duas metades são necessárias para isso ficar devidamente corrigido
v1.9.15 Site 2026-09-30

Uma varredura de segurança: seis falhas corrigidas

  • A área administrativa tinha uma porta encostada: qualquer pessoa dos grupos Dono / Administrador / Gerente podia entrar no site com a senha normal da sua conta e ir direto para /admin/** — a etapa de verificação por e-mail era pulada por completo (só a própria página de login do painel tinha sido fechada). Agora existe uma credencial de «esta sessão realmente passou pela etapa do código», então entrar no site já não é o mesmo que entrar no painel. A interface sempre disse que /admin/** só aceita contas da tabela admins; agora a implementação finalmente corresponde ao que está escrito
  • Quando o mod não conseguia ler a lista de banimentos, ele informava uma lista vazia, e o site entendia «a lista está vazia» como «todos os banimentos foram removidos» — sobrescrevia a tabela inteira de banimentos, inventava um registro de desbanimento no histórico e ainda limpava players.is_banned junto. Agora o mod só declara a lista como autoritativa quando realmente leu uma, e o site só faz a reconciliação de desbanimentos quando recebe essa declaração (ou uma lista não vazia). Isso precisa do mod 1.6.6 para valer por completo; do lado do site a proteção já está no lugar
  • O endereço do banner do perfil é preenchido pelo próprio jogador e era colado direto dentro de style="…url(URL)". Um único ) nesse endereço basta para adicionar declarações CSS arbitrárias — e os perfis são públicos, então todo visitante é afetado (position:fixed para phishing em tela cheia, ou um pixel de rastreamento vazando o IP e o navegador de cada visitante). Escapar não resolve aqui: o HTML transforma &quot; de volta em aspas antes de o CSS ver. Agora os endereços passam por uma lista branca, e o que não passar simplesmente não mostra banner
  • O cartão de /whitelist chamado «Minhas inscrições» na verdade consultava as 5 inscrições mais recentes de todo o site — qualquer usuário logado podia ler o ID de jogo, o número de QQ e as observações de análise de outras pessoas. Agora é filtrado por propriedade; as páginas do painel e de gerenciamento do servidor continuam mostrando a visão de todo o site
  • A consulta de DNS da página de ferramentas era o único ponto de entrada que nunca bloqueava endereços privados: 127.0.0.1 e nomes internos resolviam numa boa, e um registro SRV (cujo alvo é decidido pelo DNS de outra pessoa) oferecia um jeito de contornar isso. A verificação de porta host:port também rodava antes de separar os dois-pontos, então 8.8.8.8:53 podia sondar qualquer porta. As três estão corrigidas, e registros AAAA apontando para ::1 também ficaram cobertos
  • Mais três: ① um valor javascript:… no parâmetro next= do redirecionamento de login era um XSS de uma linha (Url::ensure() deixava passar qualquer coisa intacta assim que a string continha index.php, sem nunca olhar o esquema); ② depois de rodar o script de recuperação de senha, a página de login do painel mostrava a nova senha em texto puro para qualquer um que a abrisse — essa senha já é impressa no console do servidor, então a cópia na página foi removida; ③ com a chave CDR_DEBUG_CSRF ligada, o log gravava os primeiros 160 bytes da requisição de login, que é a senha em texto puro — agora grava só nomes de campos e tamanhos
v1.9.14 Site 2026-09-26

Corrigida a contagem de conquistas que variava

  • As conquistas de um jogador ficavam acesas enquanto ele estava online e apagavam ao sair — porque quando o mod não consegue ler o arquivo de progresso ele envia uma lista vazia, e o site interpretava isso como «este jogador não tem conquistas» e gravava no banco, apagando o que já estava salvo. Agora uma lista vazia nunca é gravada: é melhor manter os dados antigos do que zerá-los (o mesmo para adv_done, aceito apenas acima de zero)
  • Também corrigimos uma ordenação que partia uma série dentro de uma categoria: «conquistadas primeiro» empurrava 跳跃 10.000 / 100.000 (conquistadas) e 跳跃 500.000 (não conquistada) para extremos opostos do grupo, com os progressos do End e do Nether no meio. Agora agrupa-se primeiro por série (1 km / 10 km …, 10k saltos / 100k saltos …) e dentro de cada série as conquistadas vêm antes — recolher continua ocultando as não conquistadas no lugar, então as conquistadas seguem visíveis de imediato
v1.6.5 Mod 2026-09-26

Corrigido: conquistas nunca lidas para jogadores offline

  • Os arquivos de progresso do mundo têm nomes com hífens (077e53e3-c49c-362b-87ee-12457397e38c.json), mas o mod montava um caminho de 32 caracteres sem hífens, então não encontrava um único arquivo — jogadores online passam pelo instantâneo ao vivo do servidor e funcionavam, enquanto ficar offline era tratado como «sem progresso». Isso afetava os 1.859 arquivos de progresso e 963 jogadores, e é a causa direta de a contagem de conquistas oscilar (o site agora também não grava lista vazia). As duas formas são testadas agora; só a ausência real conta como nenhuma
v1.9.13 Site 2026-09-26

Corrigida a atribuição do nome preenchido

  • O mesmo nome pode aparecer mais de uma vez na tabela de preenchimento — um jogador pode ter tanto um UUID offline antigo (00000000-0000-...) quanto um genuíno, e ambos apontam para ele. O código original era quem chega primeiro leva, na ordem do arquivo: aqui birdzhonghuifei corresponde tanto a uma linha de 106,4 horas quanto a uma de 1,9 hora, e só deu certo porque a linha mais longa veio primeiro por acaso. Outra ordem teria dado o nome à pessoa errada. Agora vai para a linha com mais tempo de jogo, independentemente da ordem
v1.9.12 Site 2026-09-26

Os 863 «jogadores desconhecidos» recuperaram o nome

  • O usercache.json do servidor guarda só cerca de um mês, então num mundo atualizado do servidor de sobrevivência 1.21 até 1.21.11 os nomes dos jogadores antigos expiraram há muito tempo — o site só podia usar o UUID e mostrava «Jogador desconhecido · xxxxxx». Então fomos vasculhar o arquivo de backups: fundir cronologicamente os usercache / whitelist / ops / banned-players de todos os servidores anteriores recuperou os 863 nomes, sem faltar nenhum (o de 395 horas no ranking é iRXC). A atualização para v13 preenche tudo uma vez: só as linhas ainda nomeadas por um UUID são tocadas; um nome real existente não muda um único byte
  • Também cobrimos um caso limite: players.name é um índice único, então se o nome a preencher já pertence a outra linha, essa linha é ignorada e registrada — um conflito de unicidade nunca pode fazer a atualização inteira falhar. Melhor deixar um jogador como «Desconhecido» do que travar a migração
v1.9.11 Site 2026-09-26

Nomes de jogador no painel corrigidos · nomes reais não são mais sobrescritos

  • As páginas do painel de lista de jogadores / painel / banimentos / lista branca / skins / usuários mostravam como UUID cru os jogadores cujo nome não pôde ser resolvido — o site público sempre mostrou «Jogador desconhecido · xxxxxx»; faltavam apenas alguns pontos no painel, agora alinhados. Há 863 jogadores assim: o usercache.json do servidor guarda só cerca de um mês, os nomes herdados deste mundo antigo expiraram há muito tempo e o site só pode usar o UUID completo como identificador (não é falha de exibição — realmente não sobrou nenhum nome para mostrar)
  • Também corrigimos um risco de perda de dados: quando o mod não consegue resolver um nome, ele envia um nome vazio, e o código antigo gravava o UUID por cima do valor guardado. Um veterano que pare de jogar por mais de um mês teria o nome real apagado para sempre na sincronização seguinte — agora um nome real já existente é mantido, e o UUID só entra como reserva quando de fato não há nome
v1.9.10 Site 2026-09-26

Corrigido "225 horas jogadas em um dia" nas páginas de jogador

  • Corrigida a cifra absurda do gráfico "últimos 30 dias" nas páginas de jogador: quando o servidor cai ou um evento de saída se perde, fica um registro de conexão que nunca fecha, e o encerramento usava "visto pela última vez" como hora de fim, então uma sessão aberta em 13-09 foi contada até 23-09 e essas 225 horas caíram todas no dia em que ele entrou. Agora o encerramento tem três limites: o teto de 6 horas, o início da próxima sessão daquele jogador e um "visto pela última vez" que só pode encurtar a estimativa, nunca esticá-la
  • As poucas linhas erradas que já estão no banco agora aparecem corretamente sem mexer no banco (a mesma regra é aplicada na leitura), e "últimos acessos", "tempo total", "esta semana" e "tempo por servidor" passaram a usar uma única regra — antes cada lugar somava segundos por conta própria e o mesmo número se contradizia na página
v1.9.9 Site 2026-09-26

Transbordo do calendário no celular corrigido · o anual agora usa o pico diário

  • O seletor de data do chat não passa mais da borda do painel no celular (em telas estreitas ele deixa de flutuar sobre o painel e ocupa uma linha própria, então sua largura é simplesmente a do contêiner)
  • A contagem anual de jogadores online passou de uma média de 6 dias para o pico de cada dia — um servidor movimentado só à noite pode ter média de 2 jogadores enquanto uma dúzia estava conectada ao mesmo tempo; desenhado como média, um ano inteiro vira uma linha que não diz nada. 24 horas / 7 dias / 30 dias continuam usando a média, pois ali um ponto cobre apenas dezenas de minutos
v1.6.4 Mod 2026-09-26

Placeholder de latência próprio: %cloudridge:ping%

  • O %player:ping% embutido retorna 0 para todos os jogadores nas linhas da TAB (o mesmo placeholder funciona no rodapé da mesma configuração: o contexto da linha simplesmente não tem o jogador ao vivo). O novo placeholder tenta os dois caminhos: primeiro o jogador do contexto e, se não der, o nome do GameProfile contra a lista de jogadores online. Se nenhum funcionar, deixa vazio em vez de um 0 enganoso
v1.6.3 Mod 2026-09-26

Reportar início e parada

  • O mod reporta "iniciado" quando o servidor sobe e "parado" em um desligamento limpo. O aviso de parada é enviado de forma síncrona — o processo está prestes a encerrar, então entregá-lo a uma thread de fundo significa que ele nunca sai. Uma queda ou falta de luz não inventa um registro de parada
v1.9.8 Site 2026-09-26

Chat: início e parada do servidor agora aparecem no chat ao vivo

  • O início e a parada do servidor (com o horário) agora aparecem como uma linha no painel de chat, com uma barrinha vertical no lugar do avatar e uma cor que os diferencia das mensagens dos jogadores
  • O texto do histórico agora aceita marcação de código e negrito (antes só as crases eram processadas, então o negrito mostrava os asteriscos literalmente)
v1.9.7 Site 2026-09-25

Chat: consultar por data, publicar mais fácil, janelas de verdade

  • O histórico do chat agora é consultado por data: clique em um dia no calendário para ler o chat daquele dia, e os dias com mensagens aparecem em negrito. Trocar de dia não recarrega mais a página inteira.
  • Publicar ficou mais fácil: basta entrar na conta, não é mais preciso vincular antes um personagem do jogo. Se você tiver um vinculado, o nome dele é usado; se não tiver, usa-se o apelido do site, e no jogo ele é marcado como [Web · não vinculado] para se distinguir dos personagens de verdade.
  • O apelido do site só pode ser alterado a cada 15 dias (a primeira definição não tem limite) e "Minha conta" mostra quantos dias faltam; um apelido não pode repetir o de um personagem do jogo nem o de um administrador, para que ninguém mude de nome e se passe por outra pessoa.
  • As denúncias agora usam uma janela de verdade, com campo de motivo e contador de caracteres no lugar da caixinha do navegador; a confirmação de retirada e várias confirmações do painel também foram trocadas — as janelas nativas do navegador travam a página inteira.
  • A gestão do chat no painel marca os remetentes não vinculados; apagar, tratar denúncias e silenciar continuam iguais.
v1.6.2 Mod 2026-09-25

Filtro de bots corrigido + prefixo web por mensagem

  • Corrigido o filtro de bots que não fazia nada: o valor padrão da lista era bot_, e sem * ele é interpretado como correspondência exata, então nem um jogador falso foi filtrado. O padrão agora é bot_* e, ao abrir o servidor, a lista em vigor é gravada no log, para que "configurado mas sem efeito" não volte a passar em silêncio.
  • O prefixo das mensagens da web agora é enviado mensagem por mensagem: quem tem personagem vinculado recebe [Web] e quem não tem, [Web · não vinculado], então os jogadores veem de relance se quem falou foi um personagem do jogo.
  • Registro complementar da 1.6.1: entradas, saídas, mortes e progressos não apareciam de jeito nenhum porque a classificação dependia só das chaves de tradução, e alguns mods substituem a mensagem original por inteiro, de modo que a chave não é encontrada; agora existe uma classificação de reserva pelo texto renderizado e um log de diagnóstico nas primeiras 25 mensagens de sistema de cada partida.
v1.6.0 Mod 2026-09-25

Sincronização do chat: chat público e eventos enviados em tempo real

  • Nova sincronização de chat: as mensagens do chat público do jogo, as entradas e saídas, as mortes e os progressos são enviados em tempo real para o chat do site
  • As mensagens dos usuários do site são anunciadas no jogo com o prefixo [网页] em ciano; são enviadas jogador por jogador para contornar o evento de mensagem do sistema, então nada é anunciado duas vezes
  • Mortes e progressos são classificados por chave de tradução, e não pelo texto renderizado, então mudar o idioma do servidor para chinês não quebra nada
  • Entradas, saídas e mortes de jogadores falsos (bots do Carpet) não são enviadas; a lista pode ser alterada em chat_bot_names no cloudridge.json, o padrão é bot_
  • Só o chat público é coletado — mensagens privadas (/msg, /tell, /w) nunca são coletadas, e não existe interruptor que ligue isso
  • Novas opções upload_chat / chat_bot_names / chat_poll_ms; arquivos de configuração antigos continuam funcionando sem alteração e usam os valores padrão
v1.9.6 Site 2026-09-25

Painel de chat web no ar: ligação bidirecional com o chat do jogo

  • Novo chat abaixo do mapa web: as mensagens do chat público do jogo, as entradas e saídas, as mortes e os progressos aparecem no site em tempo real, com o horário de envio em cada uma
  • Nos dois sentidos: o que você escreve no chat do site aparece no chat público do jogo com o prefixo [网页]; dentro e fora do jogo o nome é o mesmo (o do personagem que você vinculou), então ninguém consegue se passar por outra pessoa
  • Sem login o chat não aparece (não é escondido na interface: o servidor não envia um único byte); você só pode escrever depois de entrar e vincular um personagem do jogo
  • O chat é organizado por rodadas do servidor: dá para alternar entre as rodadas anteriores, e o histórico sobrevive aos reinícios
  • Cada mensagem traz avatar e horário de envio; as suas você pode retirar e as dos outros, denunciar
  • Novo no painel de administração: "gestão do chat" — apagar mensagens (vale no site e no jogo ao mesmo tempo), tratar denúncias, silenciar e registrar cada ação (ao apagar, o texto original é mantido para rastreamento)
v1.9.5 Site 2026-09-25

Filtrar o histórico por tipo, mês e versão

  • O histórico agora é filtrável: os três contadores no topo (site / mod / servidor) viraram chips clicáveis — um clique mostra só aquele tipo, outro clique remove
  • Adicionamos filtro por mês e busca por versão — digitar "1.9" traz de 1.9.0 a 1.9.4, e os dois podem ser combinados
  • O estado do filtro fica na URL, então você pode mandar o link e quem abrir vê o mesmo resultado
  • Os contadores continuam sendo os totais (não diminuem ao filtrar) e há um novo aviso "nenhuma atualização corresponde a estes filtros"
v1.5.2 Mod 2026-09-25

Métricas do servidor na lista TAB

  • Nova família de placeholders %cloudridge:*% (18: TPS, MSPT, chunks, entidades, memória, CPU, taxas de rede, tempo ligado) para a lista TAB mostrar esses dados direto
  • Reaproveita a coleta que o mod já faz — nada é coletado duas vezes; os placeholders leem um cache na hora de renderizar, porque a renderização é constante e ler arquivos ou abrir processos ali travaria o servidor
  • Sem o mod de TAB não há problema: o registro é isolado e valores ausentes aparecem vazios em vez de um 0 enganoso
v1.5.1 Mod 2026-09-25

Contadores de rede funcionando e log mais limpo

  • O tráfego de rede mostrava 0 sempre: as duas APIs procuradas não existem em nenhum JDK padrão, então aquele código nunca poderia funcionar. Agora usa uma fonte que o sistema realmente oferece, analisada por estrutura e não por texto, funcionando também em sistemas não ingleses
  • A coleta foi para uma thread de fundo: essa fonte precisa de um subprocesso, e fazer isso inline causaria picos de tick
  • Novo interruptor "registrar instantâneo por heartbeat", desligado por padrão; ligado, só escreve quando os valores realmente mudam
v1.9.4 Site 2026-09-25

Correção de login, rede de segurança de backups e documentação da API

  • A verificação em duas etapas do painel voltou a funcionar. A causa era uma transação de escrita cujo commit era ignorado em silêncio na versão de PHP do servidor: os códigos nunca chegavam ao banco. O e-mail chegava, mas ao digitar o código aparecia "peça um código primeiro", e o limite de reenvio também falhava
  • Outros três casos do mesmo defeito foram corrigidos (busca de jogadores, métricas do heartbeat, registro de sessões)
  • A limpeza de backups agora usa cotas por categoria: instantâneos anteriores a atualização ou restauração não são mais deslocados pelos backups comuns, e os exportados à mão nunca são apagados automaticamente
  • A API pública de jogadores ignorava seu parâmetro de busca: com mais de 500 jogadores, ninguém abaixo da 500ª posição era encontrado. Agora usa correspondência parcial e uma falha de curinga foi fechada
  • Envios grandes demais não mostram mais página em branco, e sim uma mensagem clara
  • A documentação da API agora cobre os 5 endpoints públicos somente leitura
  • O link "voltar a usuário e senha" do painel leva à etapa correta
v1.21.11 Servidor 2026-09-25

Servidor atualizado para Minecraft 1.21.11

  • O servidor passou de 1.21.1 para 1.21.11, junto com Fabric Loader, Fabric API e todos os mods
  • O mapa web voltou a carregar: a configuração do BlueMap ainda estava no formato antigo, o que fazia o plugin inteiro recusar o carregamento
  • Todos os números de versão visíveis ao jogador, no site e no mod, agora são 1.21.11
  • Lista TAB reformulada: as cores agora seguem a identidade do site (ciano / verde), cada jogador mostra o ping em milissegundos e o rodapé traz TPS, MSPT, memória, chunks, entidades e CPU de uma vez
  • MOTD reformulado: degradê nas cores da marca, os dois textos em inglês que sobraram foram removidos, e o texto de hover agora traz o site e o grupo de QQ
  • Todas as versões visíveis agora são 1.21.11
v1.5.0 Mod 2026-09-24

Suporte a Minecraft 1.21.11

  • O mod agora tem como alvo o Minecraft 1.21.11 (Fabric Loader 0.19.5 / Fabric API 0.141.6+1.21.11)
  • A verificação de permissão dos comandos passou a usar a lista de OP do servidor; a interface anterior foi removida na 1.21.11. Console e blocos de comando mantêm o acesso como antes
  • A contagem de chunks carregados usa a nova interface, escrita para compilar em versões antigas e novas
  • As demais interfaces alteradas também foram migradas, cada uma conferida nos mapeamentos oficiais
v1.9.3 Site 2026-09-23

Mural de insígnias recolhível, explicações nos gráficos e correção da tendência de 24 horas

  • O sistema de conquistas passou de 28 para 98 insígnias, divididas em 8 grupos (sobrevivência / construção / exploração / redstone / agricultura / combate / social / coleção), e cada grupo mostra quantas você tem do total; 35 delas vêm direto das conquistas reais do jogo, e a data é o instante em que o jogo as concedeu
  • Cada eixo do radar de cinco dimensões agora se explica: o que mede, como é calculado e quanto conta como máximo, então não é preciso adivinhar pela forma; também há legenda: a figura preenchida é você e a linha cinza tracejada é a média do servidor
  • Corrigido o gráfico de tendência de 24 horas que não batia: o histórico guardava a contagem bruta do mod (incluindo o bot sempre conectado) enquanto a página mostrava o número filtrado, então os dois nunca coincidiam; agora o heartbeat e o gráfico usam o mesmo número, e ao passar o mouse na linha aparecem o horário e os jogadores
  • Os gráficos agora trocam de período: 24 horas / 7 dias / 30 dias / 1 ano, então uma olhada já mostra como o servidor está; a linha se interrompe enquanto o servidor está fechado, em vez de desenhar esses dias com 0 jogadores
  • O mural de insígnias da página do jogador pode ser recolhido: as conquistadas aparecem sempre (são o seu histórico) e as pendentes ficam atrás do título de cada grupo ou do botão «mostrar tudo» no rodapé; a escolha é lembrada, então recarregar mostra o mesmo, e sem JavaScript as 98 continuam visíveis
  • Corrigido o registro de sessões: a marca “online agora” olhava apenas se a sessão tinha hora de fim, então uma queda ou uma saída não informada deixava tudo preso em “online agora” — chegando a mostrar a mesma pessoa online em duas sessões ao mesmo tempo. Agora vale a lista que o servidor informa ao vivo, as sessões que não batem aparecem como “encerrada de forma anormal” e são fechadas sozinhas, e uma saída repetida não abre uma segunda sessão
  • Corrigido que as insígnias de «progresso do jogo» nunca acendiam: a chave usada na verificação levava um prefixo extra e não batia com os nomes de progresso que o jogo informa, então as 35 conquistas reais ficavam sempre como não obtidas — apareciam apenas em cinza, igual a uma que você ainda não conquistou, e a página não denunciava nada. Agora as chaves batem, as conquistadas acendem e mostram o dia real em que o jogo as concedeu
v1.9.2 Site 2026-09-22

Reforço de segurança e privacidade, envios e acabamento

  • O login com QQ já está ligado: AppID, AppKey e URL de retorno estão configurados, então passa a funcionar assim que a Tencent aprovar o aplicativo e a chave for ligada no painel; até lá a página de login não mostra o botão, para não deixar um acesso que não faz nada ao clicar
  • Segurança: o diretório /storage/ não pode mais ser aberto diretamente (é onde ficam os backups do banco, o cache de skins e outros arquivos que não devem ser públicos)
  • As senhas de administrador em texto puro que restavam no banco foram removidas; só ficou o resumo criptografado
  • A confirmação de personagem agora limita as falhas: errar o código curto várias vezes bloqueia por um tempo, então ninguém consegue ficar tentando até acertar
  • Os filtros de jogadores, a checagem de SVG e a validação de campos passaram a usar listas de permissão e parâmetros vinculados: só passa o que é permitido, e o que vem de fora não é mais colado direto nas consultas
  • As 74 saídas JSON do site agora levam as marcas de escape seguro, então os dados embutidos nas páginas não podem mais ser interpretados como tags
  • Privacidade: os interruptores de visibilidade do perfil ainda tinham 5 pontos por onde dava para contornar (incluindo a API pública de jogadores, que não pede chave); todos foram fechados: o que está desligado não aparece, nem na API pública
  • Envios em WebP: avatar, banner, biblioteca de imagens, fórum e mais — 8 entradas aceitam WebP direto
  • Corrigido o ajuste do painel em que a lista de formatos permitidos era gravada corrompida como a string "array": era a causa dos formatos de envio pararem de valer, e agora salvar não quebra mais
  • O tempo de jogo aparece em horas no site todo (horas como número principal e dias como legenda); o ranking mostra exatamente a coluna pela qual você ordenou
  • Compatibilidade com navegadores antigos: o mapa de calor de atividade, as barras de progresso e o fundo claro / anel de foco da área de envio não ficam mais transparentes onde não há color-mix()
  • A página pública do jogador mostra um selo de nível (Lv.N) ao lado do nome, sem estourar a largura em celulares estreitos
  • Imagens da marca: o logo e os ícones que uma imagem de teste havia sobrescrito foram restaurados, e os arquivos de marca agora têm cópia offline e a ferramenta brand-restore.php, então uma sobrescrita futura pode ser desfeita na hora
v1.9.0 Site 2026-09-19

Central do jogador e envio de imagens refeito

  • A página de perfil foi reformulada: progresso, atividade desta semana, medalhas de conquista, pegada na comunidade e a linha do tempo de atividades recentes agora ficam numa página só
  • Novo nível de jogo: sai do seu tempo total de jogo, um nível a cada 10 horas jogadas e a partir de Lv.1, e aparece tanto na sua página de perfil quanto na página pública do jogador
  • Novos interruptores de visibilidade: tempo total de jogo, última vez online, primeira entrada e lista de jogadores online ficam a seu critério, e o que está desligado também não aparece nas outras páginas
  • Avatar e banner agora aceitam envio direto de imagem e são guardados em WebP (arquivos menores, carregamento mais rápido); o avatar é cortado no centro em formato quadrado e o banner é reduzido proporcionalmente para caber em 1920×1080
  • As imagens podem ser PNG / JPG / WebP / GIF; o AVIF mostra o aviso para salvar antes como PNG ou WebP
  • Nova biblioteca de imagens: as imagens enviadas são gerenciadas num só lugar no painel, com dimensões, peso e onde são usadas
  • Segurança do envio reforçada: o tipo é decidido pelo conteúdo real do arquivo, então renomear a extensão para disfarçar é sempre recusado; tentativas de escapar da pasta de envio são bloqueadas, o SVG só passa por uma lista aprovada e arquivos órfãos sem referência são limpos
  • Reivindicar um personagem agora funciona assim: pedido no site e depois /cdr claim com o código curto no jogo, e só o próprio personagem pode confirmar
  • A página de perfil ganhou uma prévia 3D da skin; o mapa da seed e o mapa ao vivo agora usam HTTPS
v1.9.1 Site 2026-09-19

Tabela de permissões refeita (conforme os mods instalados neste servidor)

  • A lista de permissões foi refeita conforme os mods realmente instalados aqui: só ficam os itens com um nó de permissão de verdade, e marcar tem efeito de verdade
  • Capacidades que exigem um mod que não temos (terrenos, /hat, /back, cores de chat e por aí) saíram da lista; uma seção abaixo explica com honestidade o que falta e qual nó preencher no futuro
  • Cada permissão agora diz claramente o que ela realmente permite no jogo, então o modo espectador, por exemplo, nunca libera o modo criativo de brinde
  • O modo criativo virou um item próprio: para o dono e a equipe a caixa salva sem segunda confirmação, os outros grupos veem antes uma janela de confirmação. Contas do site do dono e da equipe agora também entram direto no painel
v1.8.2 Site 2026-09-18

Azul CloudRidge e um login mais firme

  • A paleta do site virou "azul CloudRidge": as cores saem direto do logo do servidor, assim o site e o logo nunca brigam
  • Corrigida a verificação humana que reprovava absolutamente todo mundo em produção (atrás do proxy reverso o IP real não existia e o limite de requisições tratava todos os visitantes como uma pessoa só)
  • Quando a verificação já passou mas a página não muda, o botão de enviar não fica mais travado; ele volta ao normal depois de 8 segundos
  • Os botões da primeira tela da home não saem mais da tela no celular
v1.8.1 Site 2026-09-18

Verificação humana atualizada

  • A verificação humana subiu para o ALTCHA 2.x com um captcha de imagem como alternativa: se o navegador não conseguir calcular a solução, basta digitar os caracteres
  • Cadastro, pedidos de whitelist e reenvio de códigos também passam pela verificação humana, o que bloqueia usar o e-mail dos outros para gastar nossa cota
  • A home tem um botão de "entrar no grupo do QQ" em um clique que abre o QQ no computador e no celular
  • Os ícones do site agora cobrem todos os tamanhos, então "adicionar à tela inicial" no celular tem um ícone de verdade
v1.8.0 Site 2026-09-18

Conquistas, dispositivos lembrados e visual novo

  • As páginas de jogador ganharam selos de conquista e um radar de habilidades, dá para ver num relance no que a pessoa é boa
  • Novo "lembrar deste dispositivo": marcando a opção você fica logado por 30 dias (trocar a senha ou sair de todos os dispositivos cancela na hora)
  • O login do painel agora tem uma segunda etapa com código por e-mail, além de uma chave de recuperação offline para quando o e-mail não chega
  • A página de whitelist agora mostra conteúdo diferente conforme seu status: em análise, aprovada, ou o motivo da recusa junto com um formulário para reenviar
  • O site todo passou para uma paleta de verde e tinta tirada do logo do servidor, com títulos em serifada, para um clima mais calmo e espaçoso
  • Os ícones das categorias do fórum não usam mais emoji (apareciam como quadrados vazios em alguns sistemas) e agora usam ícones próprios
v1.7.0 Site 2026-09-18

Busca no guia e informações ao vivo

  • O guia do servidor agora tem busca por título ou por texto
  • Um painel de servidor ao vivo na lateral do guia mostra versão, loader e versão dos mods sem sair da página
  • A lista de comandos e a de mods têm endereço próprio, o que facilita compartilhar com jogadores novos
  • No celular a lateral do guia vai para cima do texto e o painel ao vivo não ocupa mais a tela inteira
v1.6.0 Site 2026-09-18

Sincronização com o site de skins

  • Sincronização com o site de skins: cadastre-se lá com o mesmo nome, envie sua skin e o site consegue puxar ela automaticamente
  • Na primeira vez que uma página de jogador encontra um nome desconhecido, ela procura no site de skins e mostra o resultado
  • Um botão de "sincronizar skin de novo" no seu perfil atualiza tudo em um clique depois que você troca a skin lá
  • O endereço do site de skins é configurável no painel (LittleSkin por padrão), então trocar de site não exige mexer no código
v1.4.0 Site 2026-09-18

Conta e segurança

  • Seu perfil foi refeito com as seções "Conta e segurança" e "Personalização": histórico de acessos, troca de vínculo e de senha ficam ali
  • "Sair de todos os dispositivos" é suportado: depois de trocar a senha ou sair em outro lugar, os outros dispositivos são desconectados na hora
  • Os códigos de verificação agora são presos ao dispositivo: no máximo 5 por dispositivo por dia, o que impede scripts de queimar a cota de SMS e e-mail
  • Se seu e-mail ou celular ainda não foi verificado, aparece um aviso uma vez; só depois disso você pode pedir whitelist, postar ou vincular personagem
  • Seu perfil mostra um resumo da sua atividade em todos os servidores
v1.5.0 Site 2026-09-18

Lançamento reempacotado

  • Idêntico à v1.4.0, só reempacotamos para lançar, nada mudou
v1.3.8 Site 2026-09-17

Formas de login documentadas

  • A página de login por senha agora lista os três tipos de conta (e-mail, celular e nome de jogo vinculado), igual ao que funciona de verdade
  • Traduções atualizadas
v1.3.7 Site 2026-09-17

Imagens de fundo das páginas de login

  • As páginas de login, cadastro e recuperação de senha aceitam uma imagem de fundo personalizada (enviada pelo painel), com cartões em efeito vidro fosco
  • A seção de aparência permite enviar a imagem grande da home, o logo do site, o ícone do navegador e o fundo do login
  • Além de e-mail e celular, dá para entrar com um nome de jogo que você já vinculou
v1.3.6 Site 2026-09-17

Verificação da chave de SMS de volta

  • A verificação da chave voltou, mas só avisa no caso que realmente dá erro: uma sequência hexadecimal de 32 caracteres, que é um MD5 e não a KEY em texto puro
  • O aviso agora diz exatamente onde copiar a KEY de novo, em vez de te deixar com um simples "chave inválida"
v1.3.5 Site 2026-09-17

Aviso da chave de SMS corrigido

  • Removido um aviso falso sobre o tamanho da chave de SMS (exigia 32 caracteres, mas a chave real da plataforma tem 16)
  • Agora é a própria plataforma de SMS que responde se a chave está certa, em vez de adivinhar pelo tamanho
v1.3.4 Site 2026-09-17

Login corrigido e reforçado

  • Corrigido o login com e-mail e celular por senha que falhava sempre (antes retornava 500)
  • Muitas tentativas falhas agora geram um bloqueio temporário, o que segura scripts que ficam testando senhas
  • Quando a página atual faz parte de um grupo de navegação, o botão do grupo também fica destacado, então você vê na hora onde está
  • Um separador na página de login diferencia o login com QQ do login por e-mail, não dá mais para confundir
v1.3.3 Site 2026-09-16

Autoverificação dos ajustes de SMS

  • Nova autoverificação sem custo para o SMS: confere usuário, chave e modelo sem enviar nenhuma mensagem
  • Ela diz claramente se o usuário e a chave estão errados ou se o modelo ainda espera aprovação, sem precisar adivinhar
  • Uma tarefa agendada revisa de tempos em tempos o status do modelo de SMS e lembra você de ativar depois da aprovação
v1.3.2 Site 2026-09-16

Suporte a vários servidores

  • Vários servidores: cada um tem um tipo (sobrevivência, criativo, minijogos) e o site mostra conteúdo diferente por tipo
  • Servidores de criativo mostram um painel de construção e os de minijogos mostram informações da partida e um ranking de PvP
  • Mudanças de whitelist e banimento são confirmadas servidor por servidor, nada mais fica sem sincronizar em silêncio
  • O painel pode enviar uma mudança para apenas um servidor específico
v1.1.6 Mod 2026-09-16

Tipos de servidor suportados

  • Nova configuração server_type: sobrevivência, criativo, minijogos, lobby ou outro, e o site apresenta cada tipo de um jeito
  • O envio das estatísticas acumuladas foi corrigido de novo, os totais do site ficaram mais precisos
  • Documentação das configurações e mensagens do jogo atualizadas
v1.3.1 Site 2026-09-16

Log de auditoria e central de mensagens

  • Novo log no painel: quem mudou o quê e quando, tudo pesquisável em vez de garimpar o banco de dados
  • Nova central de mensagens: histórico de envios de e-mail e SMS, dá para conferir na hora quando alguém diz "não recebi o código"
  • Novas ferramentas de whitelist em massa: adicionar, remover ou limpar entradas antigas de uma vez
  • Corrigidas as permissões de grupos de usuários que nunca batiam; agora os ajustes de permissão valem de verdade
  • O painel inicial ganhou um gráfico de tendência de 14 dias: novos usuários, pedidos de whitelist, visitas e novos jogadores
v1.3.0 Site 2026-09-16

Skins de jogador e navegação agrupada

  • Skins de jogador: envie uma skin 64×64 e seu perfil e a página de jogador mostram ela em um modelo 3D (sem carregar nenhuma biblioteca externa)
  • Nova seção "Minha skin" no seu perfil, onde você pode enviar ou apagar quando quiser
  • A navegação do cabeçalho agora é agrupada em menus suspensos (Servidores, Comunidade) e não quebra em duas linhas no celular
  • Corrigidos blocos como [[mods]] e [[server-facts]] que apareciam com os colchetes crus em algumas páginas do guia
  • O rodapé agora traz o número de registro ICP e o ícone de registro na polícia
v1.2.3 Site 2026-09-13

Canal de SMS e uma leva de correções

  • Os códigos de verificação por SMS estão conectados: cadastro por celular e recuperação de senha funcionam (basta preencher os ajustes da plataforma no painel)
  • Corrigido o "mudei um ajuste no painel mas o site ignora": os ajustes de e-mail, SMS, bot e whitelist agora fazem efeito
  • Corrigida a página de detalhe do nó no status que retornava 500; nós desconhecidos agora mostram uma mensagem normal
  • Corrigidos os motivos de banimento que apareciam em inglês como "Banned by an operator."; agora eles aparecem traduzidos
  • Clicar no pedido de whitelist sem estar logado agora pede o login primeiro e depois volta para o pedido
v1.2.2 Site 2026-09-13

Contas e pedidos de whitelist online

  • Sistema de contas: cadastro com código por e-mail ou celular, login com senha e recuperação de senha esquecida
  • Pedidos de whitelist online: preencha seu ID de jogo e uma forma de contato, e a aprovação sincroniza direto no servidor
  • Se você informou o número do QQ, entrou no grupo e seu nível no QQ é suficiente, o bot do QQ aprova automaticamente
  • O dono e a equipe aprovam pedidos, adicionam ou removem whitelists e editam a config do servidor pela bolinha flutuante do canto
  • Novo botão de "publicar novidade de atualização" no painel, assim toda atualização futura é registrada sozinha
v1.1.5 Mod 2026-09-13

Sincronização de whitelist e proxy de config

  • Sincronização de whitelist: pedidos aprovados no site entram sozinhos na whitelist do servidor, sem passo manual
  • Os arquivos de config do servidor podem ser editados pelo painel do site, com backup automático do original antes
  • Uma fila de operações pendentes deixa o site entregar tarefas ao mod e receber o resultado de volta
v1.2.1 Site 2026-09-13

Ferramentas e página de status refeita

  • Nova página de ferramentas: gerador de texto em degradê, consulta de status do servidor, checagem de endereço de servidor, conversor de ticks e busca de jogador
  • A página de status foi refeita com disponibilidade de 24 horas, lista de serviços e saúde da máquina, e cada nó abre uma visão detalhada
  • Uma conta pode vincular vários personagens e escolher o principal (também dá para trocar no jogo com /cdr main)
  • A galeria de construções passou a usar visualização em foto grande, muito melhor de navegar
  • A lista de comandos e a de mods do guia agora acompanham o servidor sozinhas, ninguém precisa copiar à mão
v1.1.4 Mod 2026-09-13

Mais regras do servidor e mensagens bilíngues

  • Envio mais completo das regras: regras do jogo como manter itens e drop na morte vão junto com o status, deixando a página do guia mais precisa
  • As mensagens dos comandos no jogo têm chinês e inglês e seguem o idioma do cliente do jogador
v1.1.3 Mod 2026-09-13

Dados dos jogadores mais precisos

  • Corrigida a leitura e o envio das estatísticas acumuladas, os totais do site não divergem mais do save
  • Bonecos AFK e bots são excluídos já na coleta, então nunca aparecem nos rankings do site
v1.2.0 Site 2026-09-13

Os dados dos jogadores desde o primeiro dia

  • As estatísticas do save do servidor entraram: tempo de jogo, mortes, kills, blocos minerados e colocados e distância percorrida desde a abertura
  • A lista de jogadores pode ser ordenada por tempo total de jogo, e cada item abre uma página detalhada
  • Bonecos AFK e bots são detectados e excluídos, então não ocupam mais posições no ranking
  • A lista de banimentos ganhou uma seção de IPs banidos, mostrando de onde vem cada endereço
  • Corrigido o MSPT que não aparecia; agora TPS e MSPT têm cada um a sua própria escala
v1.1.2 Mod 2026-09-13

Estatísticas dos jogadores e lista de mods

  • Os jogadores online agora são enviados com UUID, então trocar de nome não transforma mais uma pessoa em duas
  • Lê as estatísticas do save e envia os totais desde a abertura: tempo de jogo, mortes, kills, blocos minerados e colocados e distância percorrida
  • Envia automaticamente a lista de mods instalados e a de comandos disponíveis (as dezenas de submódulos do Fabric API são filtradas)
  • IPs banidos também são enviados e aparecem em uma seção própria no site
v1.1.1 Site 2026-09-13

Avatar reserva e novo painel de administração

  • Acabaram as telas cheias de imagens quebradas quando o avatar falha: se o avatar de fora não responde, geramos um com a inicial do jogador
  • Novo layout do painel: barra superior e menu lateral com busca, você acha qualquer ajuste digitando uma palavra-chave
  • Corrigida a verificação humana que dava erro e as páginas que não abriam em alguns servidores
  • Corrigida a armadilha do endereço da API do mod sendo redirecionado: a API parecia certa mas nenhum dado chegava; agora a autoverificação do painel avisa isso claramente
  • O mapa ao vivo agora mostra uma mensagem clara quando não consegue conectar, em vez de um quadro em branco
v1.1.1 Mod 2026-09-13

Proteção contra redirecionamento do endereço da API

  • Se o endereço da API for redirecionado com 301 ou 302, o mod agora avisa o erro e mostra o endereço correto em vez de perder dados em silêncio
  • O motivo de um envio que falhou aparece no jogo com /cdr status
v1.1.0 Site 2026-09-13

Contas e galeria de construções

  • Nova galeria de construções: você envia prints do que construiu e os outros podem curtir ou abrir a imagem em tamanho grande
  • Nova lista de jogadores e páginas de jogador: tempo de jogo, mortes, blocos minerados e distância percorrida num relance
  • Chegou o painel de administração: notícias, páginas, galeria, usuários e configurações são editados pelo navegador
  • Vários idiomas e esquemas de cor, e você mesmo troca entre claro e escuro
  • Os banimentos são públicos, incluindo o resultado de cada caso
v1.1.0 Mod 2026-09-12

Primeira versão do mod de observação

  • Envia o status do servidor para o site a cada 30 segundos: jogadores online, TPS, MSPT, CPU, memória, disco e rede
  • Envia a lista de banimentos e os eventos de entrada e saída de jogadores, com os quais o site calcula o tempo de jogo
  • Adiciona o comando no jogo /cdr bind <code> para vincular a conta, além de /cdr status e /cdr reload para os administradores
  • Todas as requisições de rede rodam em uma thread de fundo, então um site fora do ar nunca deixa o servidor lento
v1.0.0 Site 2026-09-12

O site entrou no ar

  • O site abre para todo mundo: página inicial, status do servidor, guia do jogador, lista de banimentos, notícias e fórum
  • A página inicial mostra ao vivo o número de jogadores online, o TPS e a carga da máquina, enviados pelo mod do servidor a cada 30 segundos
  • Login com QQ em um clique: depois de entrar você pode vincular seu personagem e postar no fórum
  • Nenhum CDN externo em lugar nenhum, e a verificação humana também fica hospedada aqui, então as páginas abrem mais rápido
  • Funciona bem no celular e no computador, e em tela estreita o menu se recolhe sozinho

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.