diff --git a/index.js b/index.js index bedb272..3aee6e4 100644 --- a/index.js +++ b/index.js @@ -51,7 +51,7 @@ console.log('Disponível.'); wss.on('connection', ws => { //var end = ws._socket.remoteAddress; let cliente = new Cliente(ws._socket.remoteAddress, undefined, ws); - cliente.opções = vars["cliente.opções.padrão"]; // Definir opções padrão + cliente.opções = JSON.parse(JSON.stringify(vars["cliente.opções.padrão"])); // Definir opções padrão console.log('Nova conexão! Fonte: ' + cliente.endereço); let aguardandoEntrada = true; @@ -172,7 +172,7 @@ wss.on('connection', ws => { salas[salaNum].clientes.push(cliente); salaObj = salas[salaNum]; } else{ - let salaNova = new Sala(sala, [cliente], undefined, undefined, vars["sala.opções.padrão"]); + let salaNova = new Sala(sala, [cliente], undefined, undefined, JSON.parse(JSON.stringify(vars["sala.opções.padrão"]))); salaNova.pontuaçãoMeta = vars['sala.pontos.pontuaçãoMeta']; salas.push(salaNova); @@ -504,8 +504,9 @@ wss.on('connection', ws => { } case "ALTERAR_OPÇÃO":{ let opção = resposta.extra.opção, - valor = resposta.extra.valor; - if (opção === undefined || valor === undefined){ + valor = resposta.extra.valor, + alvo = resposta.extra.alvo; + if (opção === undefined || valor === undefined || alvo === undefined){ ws.send(JSON.stringify(new Resposta("ERRO", "SERVIDOR", undefined, { motivo: "PARÂMETRO_FALTANDO"}))); break; } @@ -606,7 +607,8 @@ function removerCliente(cliente, motivo){ // Remover o jogador das filas geradas. sala.jfr.splice(sala.jfr.indexOf(cliente.apelido), 1); - sala.jf.splice(sala.jf.indexOf(cliente.apelido), 1); + if (sala.jf !== undefined) + sala.jf.splice(sala.jf.indexOf(cliente.apelido), 1); // Este jogador havia escolhido a palavra atual? if (sala.clientes.length !== 1 && sala.vezDe === cliente.apelido){ @@ -662,9 +664,15 @@ function alertarClientesEvento(evento, salaNome, extra){ return; let msgFiltrada = null; + let ogMsg; + if (extra !== undefined) + ogMsg = extra.mensagem; for (let x = 0; x < sala.clientes.length; x++){ let e = extra; + if (e !== undefined) + e.mensagem = ogMsg; + if (e !== undefined && e.mensagem !== undefined){ // Evitar problemas de formatação com colchetes. e.mensagem = e.mensagem.replace(/\[/g, "\\[")