diff --git a/index.js b/index.js index a2cb162..dc01abd 100644 --- a/index.js +++ b/index.js @@ -166,7 +166,7 @@ wss.on('connection', ws => { } // Retornar um código de sucesso ao cliente, incluindo a lista de jogadores conectados, estado e o líder da sala. - ws.send(JSON.stringify(new Query("SUCCESSFUL", "SERVER", "ROOM_EXISTS", { opções: roomObj.opções, líder: roomObj.líder, estado: roomObj.estado, jogadores: jogadores }))); + ws.send(JSON.stringify(new Query("SUCCESSFUL", "SERVER", "ROOM_EXISTS", { options: roomObj.opções, leader: roomObj.líder, roomStatus: roomObj.estado, players: jogadores }))); } else { // A sala não existe. Vamos criar ela e adicionar o usuário nela. // salas.push(new Room(sala, [cliente])); @@ -214,7 +214,7 @@ wss.on('connection', ws => { alertarClientesEvento('EVENT_PLAYER_MESSAGE', cliente.sala, { apelido: cliente.apelido, mensagem: mensagem }); break; } - case "INICIAR_PARTIDA":{ + case "START_MATCH":{ // O cliente que está tentando iniciar a partida é do líder? if (roomObj.líder !== cliente.apelido){ // Este cliente não é do líder da sala. Retornar um erro ao cliente e cancelar a tarefa. @@ -234,10 +234,10 @@ wss.on('connection', ws => { roomObj.novaPartida(); - alertarClientesEvento("EVENT_ROOM_STATUS_CHANGED", cliente.sala, { estado: roomObj.estado }); + alertarClientesEvento("EVENT_ROOM_STATUS_CHANGED", cliente.sala, { roomStatus: roomObj.estado }); // E vamos alertar todos os clientes sobre o jogador escolhido. - alertarClientesEvento("EVENT_JOGADOR_ESCOLHIDO", cliente.sala, { jogador: roomObj.vezDe }); + alertarClientesEvento("EVENT_PLAYER_CHOSEN", cliente.sala, { nickname: roomObj.vezDe }); break; } case "ESCOLHER_PALAVRA":{ @@ -319,7 +319,7 @@ wss.on('connection', ws => { alertarClientesEvento("EVENT_PALAVRA_ESCOLHIDA", cliente.sala, { palavra: { tamanho: resposta.extra.palavra.length, espaços: roomObj.procurar(' '), hífens: roomObj.procurar('-') }, tema: resposta.extra.tema, termoVezDe: roomObj.termoVezDe }); break; } - case "ENVIAR_TERMO":{ + case "SEND_TERM":{ // A sala está em partida? if (roomObj.estado !== "IN_SESSION"){ ws.send(JSON.stringify(new Query("ERRO", "SERVER", "SALA_ESTADO_NÃO_EM_PARTIDA"))); @@ -346,20 +346,20 @@ wss.on('connection', ws => { } // Verificar o tipo do termo enviado. - let letra = resposta.extra.termo.length === 1; + let letra = resposta.extra.term.length === 1; let salaClientes = roomObj.clientes; let e = Util.receberClientePorApelido(roomObj, roomObj.vezDe); // escolhedor // O termo está vazio? - if (resposta.extra.termo.replace(/ /g, "") === ""){ + if (resposta.extra.term.replace(/ /g, "") === ""){ ws.send(JSON.stringify(new Query("PEDIDO_CANCELADO", "SERVER", "TERMO_INVÁLIDO", { erroDescrição: "TERMO_VAZIO" }))); return; } // O jogador deseja pular? if (roomObj.estadoTermo === "AGUARDANDO_TERMO" && - resposta.extra.termo === '?'){ - alertarClientesEvento("EVENT_JOGADOR_PULOU_TERMO", cliente.sala, { jogador: cliente.apelido }); + resposta.extra.term === '?'){ + alertarClientesEvento("EVENT_PLAYER_SKIPPED_TERM_TURN", cliente.sala, { nickname: cliente.apelido }); // Escolher outro jogador. escolherJogadorTermo(roomObj); return; @@ -375,9 +375,9 @@ wss.on('connection', ws => { cliente.uas = Date.now(); roomObj.uas = Date.now(); - resposta.extra.termo = resposta.extra.termo.toUpperCase(); + resposta.extra.term = resposta.extra.term.toUpperCase(); - let resultadoTermo = roomObj.processarTermo(resposta.extra.termo); + let resultadoTermo = roomObj.processarTermo(resposta.extra.term); let lp = resultadoTermo.letrasPreenchidas; let r = resultadoTermo.resultado; @@ -386,17 +386,17 @@ wss.on('connection', ws => { let dif = 0, // diferença da nova pontuação do jogador que enviou o termo dife = 0; // diferença da nova pontuação do jogador que enviou a palavra atual switch (r){ - case "LETRA_JÁ_ESCOLHIDA":{ - alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r }); + case "LETTER_ALREADY_CHOSEN":{ + alertarClientesEvento("EVENT_TERM_CHOSEN", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r }); tentarNovamente = true; break; } - case "PALAVRA_JÁ_ESCOLHIDA":{ - alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r }); + case "TERM_ALREADY_CHOSEN":{ + alertarClientesEvento("EVENT_TERM_CHOSEN", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r }); tentarNovamente = true; break; } - case "LETRAS_PREENCHIDAS":{ + case "LETTER_PRESENT":{ alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r, ldc: roomObj.ldc }); // Também acrescentar pontuação ao jogador. @@ -409,12 +409,12 @@ wss.on('connection', ws => { alertarClientesEvento("EVENT_JOGADOR_PONTUAÇÃO_ALTERADA", cliente.sala, { jogador: e.apelido, pontos: e.pontos, diferença: dife }); break; } - case "LETRA_INEXISTENTE":{ + case "LETTER_NOT_PRESENT":{ alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r }); if (alterarTin(roomObj)) return; break; } - case "PALAVRA_CORRETA":{ + case "TERM_GUESSED":{ alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { acertou: true, palavra: roomObj.palavra, resultado: r }); // Acrescentar pontos ao jogador por acertar a palavra. // Pontos pelos campos que antes estavam vazios e pontos por acertar a palavra. @@ -447,7 +447,7 @@ wss.on('connection', ws => { alertarClientesEvento("EVENT_JOGADOR_ESCOLHIDO", cliente.sala, { jogador: roomObj.vezDe }); return; } - case "PALAVRA_INCORRETA":{ + case "TERM_NOT_GUESSED":{ alterarTin(roomObj); // Penalizar o jogador caso ele tenha errado a palavra cedo. if (roomObj.estadoTermo === 'AGUARDANDO_LETRA') @@ -465,13 +465,13 @@ wss.on('connection', ws => { /*alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo });*/ break; } - case "CHUTAR_CLIENTE":{ + case "KICK_PLAYER":{ // Problema #60: O cliente que enviou este pedido é o líder da sala? if (roomObj.líder !== cliente.apelido){ ws.send(JSON.stringify(new Query("ERRO", "SERVER", "SEM_PERMISSÃO"))); return; } - let jogador = resposta.extra.jogador; + let jogador = resposta.extra.nickname; if (jogador === undefined){ ws.send(JSON.stringify(new Query("ERRO", "SERVER", undefined, { motivo: "PARÂMETRO_FALTANDO"}))); break; @@ -481,19 +481,19 @@ wss.on('connection', ws => { // Encerrar conexão com o cliente alvo. let clienteAlvo = Util.receberClientePorApelido(roomObj, jogador); - alertarClientesEvento("EVENT_CLIENTE_CHUTADO", cliente.sala, { cliente: clienteAlvo.apelido }); + alertarClientesEvento("EVENT_PLAYER_KICKED", cliente.sala, { nickname: clienteAlvo.apelido }); // Remover o cliente da sala. clienteAlvo.socket.terminate(); break; } - case "BANIR_CLIENTE":{ + case "BAN_PLAYER":{ // Problema #60: O cliente que enviou este pedido é o líder da sala? if (roomObj.líder !== cliente.apelido){ ws.send(JSON.stringify(new Query("ERRO", "SERVER", "SEM_PERMISSÃO"))); return; } - let jogador = resposta.extra.jogador; + let jogador = resposta.extra.nickname; if (jogador === undefined){ ws.send(JSON.stringify(new Query("ERRO", "SERVER", undefined, { motivo: "PARÂMETRO_FALTANDO" }))); break; @@ -502,7 +502,7 @@ wss.on('connection', ws => { // Encerrar conexão com o cliente alvo. let clienteAlvo = Util.receberClientePorApelido(roomObj, jogador); - alertarClientesEvento("EVENT_CLIENTE_BANIDO", cliente.sala, { cliente: clienteAlvo.apelido }); + alertarClientesEvento("EVENT_PLAYER_BANNED", cliente.sala, { nickname: clienteAlvo.apelido }); // Remover o cliente da sala. clienteAlvo.socket.terminate(); @@ -563,7 +563,7 @@ wss.on('connection', ws => { ws.on('close', function(){ console.log(' [' + cliente.address + '] Conexão fechada.'); // Remover o cliente da lista de clientes. - removerCliente(cliente, 'MOTIVO_CONEXÃO_FECHADA'); + removerCliente(cliente, 'REASON_CONNECTION_CLOSED'); }); let resposta = new Query("TEST_CON", "SERVER"); ws.send(JSON.stringify(resposta)); @@ -603,7 +603,7 @@ function removerCliente(cliente, motivo){ //return; // Alertar os clientes na sala sobre o jogador que está sendo removido caso um motivo tenha sido especificado. - alertarClientesEvento('EVENT_JOGADOR_SAIU', cliente.sala, { apelido: cliente.apelido, motivo: motivo }); + alertarClientesEvento('EVENT_PLAYER_LEFT', cliente.sala, { nickname: cliente.apelido, reason: motivo }); if(líder) // Remover todos os jogadores da sala. for (let x = sala.clientes.length; x > 0; x--) @@ -738,7 +738,7 @@ function verificarPossibilidadeDePartida(sala, forçar){ sala.estado = sala.clientes.length === 1 ? "AGUARDANDO_JOGADORES" : "AGUARDANDO_LÍDER"; // Alertar os clientes. - alertarClientesEvento("EVENT_ROOM_STATUS_CHANGED", sala.sala, { estado: sala.estado }); + alertarClientesEvento("EVENT_ROOM_STATUS_CHANGED", sala.sala, { roomStatus: sala.estado }); return sala.clientes.length > 1; } @@ -824,7 +824,7 @@ function checarInativos(){ if (Date.now() - clientes[x].uas >= vars["client.uas.max"]){ console.log("[" + clientes[x].endereço + "] O jogador parece estar inativo. Fechando conexão."); // Alertar os clientes. - alertarClientesEvento("EVENT_JOGADOR_CHUTADO_POR_INATIVIDADE", clientes[x].sala, { jogador: clientes[x].apelido }); + alertarClientesEvento("EVENT_PLAYER_KICKED_FOR_INACTIVITY", clientes[x].sala, { nickname: clientes[x].apelido }); clientes[x].socket.terminate(); } } @@ -836,7 +836,7 @@ function checarInativos(){ if (Date.now() - salas[x].uas >= vars["room.uas.max"]){ console.log(salas[x].sala + ": esta sala parece estar inativa. Removendo ela."); // Esta sala está inativa. Alertar aos clientes de que eles serão desconectados desta sala por inatividade. - alertarClientesEvento("EVENT_SALA_INATIVA", salas[x].sala); + alertarClientesEvento("EVENT_ROOM_INACTIVE", salas[x].sala); // Terminar conexão com o líder, que automaticamente irá desconectar todos da sala. Util.receberClientePorApelido(salas[x], salas[x].líder).socket.terminate(); }