[CEO] Hideki Posted January 31 [CEO] Share Posted January 31 🚨 ALERTA CRÍTICO DE SEGURANÇA Erro Fatal em Adaptive Cards - Falha Silenciosa de Conexão Severidade: ⚠️ CRÍTICO Impacto: Alto - Bloqueia Conexões Urgência: 🔴 IMEDIATA 📋 O Que Está Acontecendo? Identificado um erro crítico na estrutura JSON dos arquivos Adaptive Cards que causa perda de conexão silenciosas durante o processo de autenticação. Players tentam conectar mas são rejeitados sem mensagem clara, resultando em loop de conexão. ⚠️ Sintomas Identificados Players são desconectados sem mensagem de erro clara Console mostra: attempt to index a nil value Fila de conexão fica travada 🐛 Causa Raiz do Erro Os arquivos .js dos Adaptive Cards contêm estrutura JSON inválida com múltiplos arrays separados por vírgula: // ❌ ESTRUTURA INCORRETA (CAUSA O ERRO) [{ "type": "AdaptiveCard", "body": [...] }], ← Vírgula separa dois arrays! [{ "type": "AdaptiveCard", "body": [...] }] O código em base.lua tenta acessar json.decode()[1], mas retorna nil quando há arrays separados. ✅ Solução Definitiva 🔧 Passo 1: Corrigir Arquivos JSON Remova o segundo array de cada arquivo. Mantenha apenas um único array válido: // ✅ ESTRUTURA CORRETA [{ "type": "AdaptiveCard", "body": [{ "type": "TextBlock", "text": "Servidor em manutenção" }], "version": "1.0" }] 🛡️ Passo 2: Implementar Tratamento de Erros (RECOMENDADO) Adicione no início do base.lua: -- Carregamento seguro com tratamento de erros local function loadAdaptiveCard(filename) local fileContent = LoadResourceFile(GetCurrentResourceName(), filename) if not fileContent then print(string.format("^1[ERRO] Arquivo não encontrado: %s^0", filename)) return nil end local success, decoded = pcall(json.decode, fileContent) if not success then print(string.format("^1[ERRO] JSON inválido: %s^0", filename)) return nil end if type(decoded) ~= "table" or not decoded[1] then print(string.format("^1[ERRO] Formato incorreto: %s^0", filename)) return nil end return decoded[1] end -- Carregar com segurança local nomearquivo = loadAdaptiveCard("nomearquivo.js") local nomearquivo2 = loadAdaptiveCard("nomearquivo2.js") 📋 Checklist de Correção ☐ Fazer backup dos arquivos originais ☐ Corrigir todos os arquivos .js dos adaptive cards ☐ Remover arrays duplicados/vírgulas extras ☐ Implementar função loadAdaptiveCard() ☐ Validar JSON em Hidden Content Login required This is the hidden content, please Sign In Sign Up ☐ Reiniciar servidor e verificar console ☐ Testar conexão real de um player 📊 Análise de Impacto Aspecto Nível Descrição Severidade CRÍTICO Impede funcionamento do servidor Impacto ALTO 100% dos players afetados Urgência IMEDIATA Correção deve ser aplicada agora Tipo de Falha SILENCIOSA Sem feedback claro ao usuário 💡 Dicas Importantes Sempre valide JSON antes de colocar em produção usando ferramentas online Mantenha backups dos arquivos originais antes de fazer alterações Teste em ambiente de desenvolvimento antes de aplicar em produção Verifique o encoding dos arquivos (deve ser UTF-8) Monitore os logs do console após cada correção 🆘 Precisa de Ajuda? Comente abaixo para que possamos te ajudar, a FivemDEV tem um compromisso sério com a comunidade.; ✅ Problema resolvido? Deixe um comentário ajudando outros membros! Atenciosamente, Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now