GameRules do Cliente e Auxiliares de GUI
| Classe Utilitária | Ambiente | Finalidade |
|---|---|---|
ClientGameRuleHelper | Cliente / Servidor Integrado | Consulta GameRules no servidor integrado pela thread cliente |
ConfigHelper | Comum (Cliente/Servidor) | Carregamento, gravação e backup atômico de arquivos JSON |
GuiHelper | Cliente | Auxiliares de telas de configuração ModMenu / Cloth Config |
🖥️ Proteção Contra Falhas de ClassLoader em Servidores Dedicados
Para assegurar 100% de integridade em servidores dedicados e evitar que classes de cliente quebrem a inicialização, todas as rotinas gráficas e helpers integrados contam com checagens tardias (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT).
ascii
DynamicGameRuleManager.getInt(level, ruleKey)
│
┌───────────────────┴───────────────────┐
▼ ▼
[ level instanceof ServerLevel ] [ Client Environment ]
│ │
▼ ▼
Direct Level Lookup ClientGameRuleHelper
(Queries Integrated Server)📄 Trocas Atômicas de Arquivos JSON no ConfigHelper
O ConfigHelper implementa proteção contra perda de dados durante quedas de energia:
- Grava os novos dados em arquivo temporário
config.json.tmp. - Valida o formato JSON e confere o tamanho do arquivo.
- Cria backup automático de segurança
config.json.bak. - Conclui a substituição atômica
config.json.tmp->config.jsoncomFiles.move(..., StandardCopyOption.ATOMIC_MOVE).
