Releases: ALLANOSAN/minecraft-launcher-java
Release list
v1.1.5 — Skin Preview 3D
v1.1.5 — Nova feature: Preview de Skin em 3D 🎨
Novidades
- SkinManager: Busca skins via API pública da Mojang (qualquer jogador, sem autenticação), NameMC, URL direta e arquivo local PNG
- SkinPreview3D: Modelo 3D completo do personagem Minecraft com TriangleMesh + mapeamento UV da textura 64x64 (cabeça, corpo, braços, pernas)
- Nova aba "Aparência" na sidebar: Preview 3D com rotação por mouse drag e zoom por scroll, campo de busca por nome de jogador, URL direta e upload de arquivo
- Auto-carregamento: Skin da conta logada carrega automaticamente ao iniciar
- Cache em disco: Skins baixadas são cacheadas em ~/.minelauncher/skins/
Correções
- SkinManager: Trata HTTP 204 (No Content) da API sessionserver — retorna null em vez de NPE
- Versão sincronizada: APP_VERSION (AppConstants) em 1.1.5, launcher_version usa a constante (não mais "1.0.0" hardcoded)
v1.1.3
v1.1.3 — Fixes
- Forge 1.20.1+: consertado o
-DignoreListadicionando version ID e prefixo_1.ao GameLauncher - ProfileManager: refatorado para Singleton via Guice para evitar conflitos de instância e perda de estado
- ProfileManager: desabilitado auto-import do launcher oficial para impedir que perfis deletados reapareçam
- ModActions: corrigida deleção de modpacks mapeando corretamente os IDs de diretório e purgando todos os perfis associados
- Codebase: removidos métodos e imports não utilizados no ProfileManager
- Tests: sincronizados e limpos os arquivos de teste
v1.1.2 — Refactor + Security Review
✨ v1.1.2 — Refactor + Security Review (Milestone Release)
159/159 testes JUnit 5 verde | Java 21 | 159 testes | 22 suites
Esta release marca o fim do arc de cleanup + hardening do MineLauncher. O launcher passou por refactor estrutural, 2 rounds de code review, e 1 security review completo — todos os achados endereçados.
🏗️ Refactor arquitetural
- GameLauncher (608 LOC) quebrado em 4 classes focadas:
ProcessSpawner— spawn do processo do MinecraftLibraryVerifier— download + verificação SHA1NativesExtractor— extração de .so/.dll/.dylibGameLauncher(slim) — orquestração
- SettingsManager NPE fix — ordem de campos estáticos (GSON → ACCOUNTS_TYPE → INSTANCE) eliminava NPE no primeiro launch
- CSS inline extraído para classes nomeadas em
dark-theme.css - Linux ARM64 detection corrigido
🔍 Code review (17 achados endereçados)
- Round 1 (10 achados): CRIT + HIGH + MEDIUM + LOW
- Round 2 (7 achados): observability, test quality, legacy profile
🛡️ Security review (15/15 itens)
- CRIT-1..7: todos endereçados (fail-closed encrypt, 5-level fallback HWID, refresh token, opt-in error reporter, sidecar markers, parallel mod updates, Unicode-aware sanitizeName)
- HIGH-8..15: todos endereçados (HttpUrl.Builder, symlink defense, User-Agent interceptor, etc.)
- INFO-1: BackupService.createSnapshot(String, File, File) agora sanitiza worldName contra path traversal e control chars
🔧 CI/CD
- GitHub Actions (
.github/workflows/ci.yml) agora bloqueia PRs com regressão de teste - Build em JDK 21 + cache Maven + upload de artifact
📊 Métricas
- 159 testes JUnit 5 (22 suítes, 0 falhas, 0 erros, 0 skipped)
- Java 21, JavaFX 21, Maven 3.9+
- Cobertura: services, utils, launcher core, security helpers, controllers
📦 Commits desta release
4f41f77 docs: add CI + release + license + Java version badges to README
8462d2f ci: enable test failure on PR (was continue-on-error from pre-JUnit era)
64753c0 fix: security-review INFO-1 — sanitize worldName in BackupService
a67185c fix: code review on 655ae88 - observability, test quality, legacy profile
655ae88 fix: code review findings - security, correctness, tests
3f1df4c feat: code review audit pass — security, auth, quality, tests
42e44a2 refactor: split GameLauncher into focused classes + fix SettingsManager NPE
5bb4713 refactor: audit pass — CSS classes, Linux arch detection, backup simplify
Como rodar: mvn clean package e execute o JAR em target/. Veja o README para instruções completas.
Versão: 1.1.1 Implementação do Sistema de Atualização Automático
Corrigido sistema que impedia o Launcher de ser atualizado automaticamente e depois do Update o launcher abrir automaticamente apos o update
Versão: 1.1.0 Implementação de Backup Automático ao Abrir o Launcher
💾 Nova Feature: Backup Automático ao Abrir o Launcher
Esta atualização introduz um sistema automatizado de cópias de segurança (backups) que é executado toda vez que o launcher é inicializado. Isso garante que o seu progresso esteja protegido e salvo antes mesmo de você começar uma nova sessão de jogo.
Definição do Diretório: Para que o sistema funcione corretamente, você deve indicar a pasta onde os backups serão salvos diretamente na tela de configurações do launcher. O recurso só será ativado após essa definição.
🛠️ O que foi implementado:
Backup na Inicialização: O launcher agora faz a varredura e copia os arquivos de save de forma totalmente automática assim que é aberto.
Rotação de Arquivos (Limite de 3 Backups): Para não lotar o seu disco, o sistema mantém apenas os últimos 3 backups mais recentes. Sempre que um novo backup é criado na abertura do launcher, a versão mais antiga é descartada.
Prevenção de Erros: Proteção ideal contra arquivos corrompidos durante o fechamento da sessão anterior.
💡 Nota: Lembre-se de abrir o launcher, ir até as configurações e definir a sua pasta de destino para que os backups comecem a ser gerado
1.0.0
🚀 Nova Feature: Sistema de Update Automático
Este lançamento introduz a infraestrutura para atualizações automatizadas no launcher de Java. Esta build foi estruturada para que o launcher possa verificar, baixar e aplicar novas versões de forma autônoma.
🛠️ O que foi implementado:
- Checagem de Versão: Integração com a API [ou sistema de checagem] para identificar novas atualizações disponíveis.
- Download do Update: Fluxo para baixar os arquivos necessários da nova versão em segundo plano.
- Mecanismo de Aplicação: Lógica para substituir os arquivos antigos pelos novos e reiniciar o launcher atualizado.