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