Translated names from the networking protocol
This commit is contained in:
parent
18edf28ed8
commit
ede1d438a9
60
index.js
60
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.
|
// 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 {
|
} else {
|
||||||
// A sala não existe. Vamos criar ela e adicionar o usuário nela.
|
// A sala não existe. Vamos criar ela e adicionar o usuário nela.
|
||||||
// salas.push(new Room(sala, [cliente]));
|
// 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 });
|
alertarClientesEvento('EVENT_PLAYER_MESSAGE', cliente.sala, { apelido: cliente.apelido, mensagem: mensagem });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "INICIAR_PARTIDA":{
|
case "START_MATCH":{
|
||||||
// O cliente que está tentando iniciar a partida é do líder?
|
// O cliente que está tentando iniciar a partida é do líder?
|
||||||
if (roomObj.líder !== cliente.apelido){
|
if (roomObj.líder !== cliente.apelido){
|
||||||
// Este cliente não é do líder da sala. Retornar um erro ao cliente e cancelar a tarefa.
|
// 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();
|
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.
|
// 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;
|
break;
|
||||||
}
|
}
|
||||||
case "ESCOLHER_PALAVRA":{
|
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 });
|
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;
|
break;
|
||||||
}
|
}
|
||||||
case "ENVIAR_TERMO":{
|
case "SEND_TERM":{
|
||||||
// A sala está em partida?
|
// A sala está em partida?
|
||||||
if (roomObj.estado !== "IN_SESSION"){
|
if (roomObj.estado !== "IN_SESSION"){
|
||||||
ws.send(JSON.stringify(new Query("ERRO", "SERVER", "SALA_ESTADO_NÃO_EM_PARTIDA")));
|
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.
|
// 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 salaClientes = roomObj.clientes;
|
||||||
let e = Util.receberClientePorApelido(roomObj, roomObj.vezDe); // escolhedor
|
let e = Util.receberClientePorApelido(roomObj, roomObj.vezDe); // escolhedor
|
||||||
|
|
||||||
// O termo está vazio?
|
// 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" })));
|
ws.send(JSON.stringify(new Query("PEDIDO_CANCELADO", "SERVER", "TERMO_INVÁLIDO", { erroDescrição: "TERMO_VAZIO" })));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// O jogador deseja pular?
|
// O jogador deseja pular?
|
||||||
if (roomObj.estadoTermo === "AGUARDANDO_TERMO" &&
|
if (roomObj.estadoTermo === "AGUARDANDO_TERMO" &&
|
||||||
resposta.extra.termo === '?'){
|
resposta.extra.term === '?'){
|
||||||
alertarClientesEvento("EVENT_JOGADOR_PULOU_TERMO", cliente.sala, { jogador: cliente.apelido });
|
alertarClientesEvento("EVENT_PLAYER_SKIPPED_TERM_TURN", cliente.sala, { nickname: cliente.apelido });
|
||||||
// Escolher outro jogador.
|
// Escolher outro jogador.
|
||||||
escolherJogadorTermo(roomObj);
|
escolherJogadorTermo(roomObj);
|
||||||
return;
|
return;
|
||||||
|
@ -375,9 +375,9 @@ wss.on('connection', ws => {
|
||||||
cliente.uas = Date.now();
|
cliente.uas = Date.now();
|
||||||
roomObj.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 lp = resultadoTermo.letrasPreenchidas;
|
||||||
let r = resultadoTermo.resultado;
|
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
|
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
|
dife = 0; // diferença da nova pontuação do jogador que enviou a palavra atual
|
||||||
switch (r){
|
switch (r){
|
||||||
case "LETRA_JÁ_ESCOLHIDA":{
|
case "LETTER_ALREADY_CHOSEN":{
|
||||||
alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r });
|
alertarClientesEvento("EVENT_TERM_CHOSEN", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r });
|
||||||
tentarNovamente = true;
|
tentarNovamente = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "PALAVRA_JÁ_ESCOLHIDA":{
|
case "TERM_ALREADY_CHOSEN":{
|
||||||
alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r });
|
alertarClientesEvento("EVENT_TERM_CHOSEN", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r });
|
||||||
tentarNovamente = true;
|
tentarNovamente = true;
|
||||||
break;
|
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 });
|
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.
|
// 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 });
|
alertarClientesEvento("EVENT_JOGADOR_PONTUAÇÃO_ALTERADA", cliente.sala, { jogador: e.apelido, pontos: e.pontos, diferença: dife });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "LETRA_INEXISTENTE":{
|
case "LETTER_NOT_PRESENT":{
|
||||||
alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r });
|
alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo, resultado: r });
|
||||||
if (alterarTin(roomObj)) return;
|
if (alterarTin(roomObj)) return;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "PALAVRA_CORRETA":{
|
case "TERM_GUESSED":{
|
||||||
alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { acertou: true, palavra: roomObj.palavra, resultado: r });
|
alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { acertou: true, palavra: roomObj.palavra, resultado: r });
|
||||||
// Acrescentar pontos ao jogador por acertar a palavra.
|
// Acrescentar pontos ao jogador por acertar a palavra.
|
||||||
// Pontos pelos campos que antes estavam vazios e pontos 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 });
|
alertarClientesEvento("EVENT_JOGADOR_ESCOLHIDO", cliente.sala, { jogador: roomObj.vezDe });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case "PALAVRA_INCORRETA":{
|
case "TERM_NOT_GUESSED":{
|
||||||
alterarTin(roomObj);
|
alterarTin(roomObj);
|
||||||
// Penalizar o jogador caso ele tenha errado a palavra cedo.
|
// Penalizar o jogador caso ele tenha errado a palavra cedo.
|
||||||
if (roomObj.estadoTermo === 'AGUARDANDO_LETRA')
|
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 });*/
|
/*alertarClientesEvento("EVENT_TERMO_ESCOLHIDO", cliente.sala, { tipo: letra ? "LETRA" : "TERMO", termo: resposta.extra.termo });*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "CHUTAR_CLIENTE":{
|
case "KICK_PLAYER":{
|
||||||
// Problema #60: O cliente que enviou este pedido é o líder da sala?
|
// Problema #60: O cliente que enviou este pedido é o líder da sala?
|
||||||
if (roomObj.líder !== cliente.apelido){
|
if (roomObj.líder !== cliente.apelido){
|
||||||
ws.send(JSON.stringify(new Query("ERRO", "SERVER", "SEM_PERMISSÃO")));
|
ws.send(JSON.stringify(new Query("ERRO", "SERVER", "SEM_PERMISSÃO")));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let jogador = resposta.extra.jogador;
|
let jogador = resposta.extra.nickname;
|
||||||
if (jogador === undefined){
|
if (jogador === undefined){
|
||||||
ws.send(JSON.stringify(new Query("ERRO", "SERVER", undefined, { motivo: "PARÂMETRO_FALTANDO"})));
|
ws.send(JSON.stringify(new Query("ERRO", "SERVER", undefined, { motivo: "PARÂMETRO_FALTANDO"})));
|
||||||
break;
|
break;
|
||||||
|
@ -481,19 +481,19 @@ wss.on('connection', ws => {
|
||||||
|
|
||||||
// Encerrar conexão com o cliente alvo.
|
// Encerrar conexão com o cliente alvo.
|
||||||
let clienteAlvo = Util.receberClientePorApelido(roomObj, jogador);
|
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.
|
// Remover o cliente da sala.
|
||||||
clienteAlvo.socket.terminate();
|
clienteAlvo.socket.terminate();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "BANIR_CLIENTE":{
|
case "BAN_PLAYER":{
|
||||||
// Problema #60: O cliente que enviou este pedido é o líder da sala?
|
// Problema #60: O cliente que enviou este pedido é o líder da sala?
|
||||||
if (roomObj.líder !== cliente.apelido){
|
if (roomObj.líder !== cliente.apelido){
|
||||||
ws.send(JSON.stringify(new Query("ERRO", "SERVER", "SEM_PERMISSÃO")));
|
ws.send(JSON.stringify(new Query("ERRO", "SERVER", "SEM_PERMISSÃO")));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let jogador = resposta.extra.jogador;
|
let jogador = resposta.extra.nickname;
|
||||||
if (jogador === undefined){
|
if (jogador === undefined){
|
||||||
ws.send(JSON.stringify(new Query("ERRO", "SERVER", undefined, { motivo: "PARÂMETRO_FALTANDO" })));
|
ws.send(JSON.stringify(new Query("ERRO", "SERVER", undefined, { motivo: "PARÂMETRO_FALTANDO" })));
|
||||||
break;
|
break;
|
||||||
|
@ -502,7 +502,7 @@ wss.on('connection', ws => {
|
||||||
|
|
||||||
// Encerrar conexão com o cliente alvo.
|
// Encerrar conexão com o cliente alvo.
|
||||||
let clienteAlvo = Util.receberClientePorApelido(roomObj, jogador);
|
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.
|
// Remover o cliente da sala.
|
||||||
clienteAlvo.socket.terminate();
|
clienteAlvo.socket.terminate();
|
||||||
|
@ -563,7 +563,7 @@ wss.on('connection', ws => {
|
||||||
ws.on('close', function(){
|
ws.on('close', function(){
|
||||||
console.log(' [' + cliente.address + '] Conexão fechada.');
|
console.log(' [' + cliente.address + '] Conexão fechada.');
|
||||||
// Remover o cliente da lista de clientes.
|
// 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");
|
let resposta = new Query("TEST_CON", "SERVER");
|
||||||
ws.send(JSON.stringify(resposta));
|
ws.send(JSON.stringify(resposta));
|
||||||
|
@ -603,7 +603,7 @@ function removerCliente(cliente, motivo){
|
||||||
//return;
|
//return;
|
||||||
|
|
||||||
// Alertar os clientes na sala sobre o jogador que está sendo removido caso um motivo tenha sido especificado.
|
// 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.
|
if(líder) // Remover todos os jogadores da sala.
|
||||||
for (let x = sala.clientes.length; x > 0; x--)
|
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";
|
sala.estado = sala.clientes.length === 1 ? "AGUARDANDO_JOGADORES" : "AGUARDANDO_LÍDER";
|
||||||
|
|
||||||
// Alertar os clientes.
|
// 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;
|
return sala.clientes.length > 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -824,7 +824,7 @@ function checarInativos(){
|
||||||
if (Date.now() - clientes[x].uas >= vars["client.uas.max"]){
|
if (Date.now() - clientes[x].uas >= vars["client.uas.max"]){
|
||||||
console.log("[" + clientes[x].endereço + "] O jogador parece estar inativo. Fechando conexão.");
|
console.log("[" + clientes[x].endereço + "] O jogador parece estar inativo. Fechando conexão.");
|
||||||
// Alertar os clientes.
|
// 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();
|
clientes[x].socket.terminate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -836,7 +836,7 @@ function checarInativos(){
|
||||||
if (Date.now() - salas[x].uas >= vars["room.uas.max"]){
|
if (Date.now() - salas[x].uas >= vars["room.uas.max"]){
|
||||||
console.log(salas[x].sala + ": esta sala parece estar inativa. Removendo ela.");
|
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.
|
// 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.
|
// Terminar conexão com o líder, que automaticamente irá desconectar todos da sala.
|
||||||
Util.receberClientePorApelido(salas[x], salas[x].líder).socket.terminate();
|
Util.receberClientePorApelido(salas[x], salas[x].líder).socket.terminate();
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue