Correção na troca de opções de jogador e sala
Um problema que fazia com que o servidor alterasse as opções de todos os jogadores/salas quando a opção de um fosse alterado foi corrigido.
This commit is contained in:
parent
61a6b98727
commit
06c5ebb095
18
index.js
18
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, "\\[")
|
||||
|
|
Reference in New Issue