From 5345c97f33ad56a9d4b0008a14842df66f3699b0 Mon Sep 17 00:00:00 2001 From: Oliver-Akins Date: Sat, 2 Jan 2021 13:32:05 -0700 Subject: [PATCH] Update logs to use Game's logger when possible instead of Global. --- server/src/events/DeleteGame.ts | 3 ++- server/src/events/GetPastQuestions.ts | 4 ++-- server/src/events/JoinGame.ts | 8 +++++--- server/src/events/LeaveGame.ts | 16 +++++++-------- server/src/events/NewHand.ts | 4 ++-- server/src/events/ObjectList.ts | 4 ++-- server/src/events/SelectObject.ts | 6 +++--- server/src/events/SendCard.ts | 8 ++++---- server/src/events/UpdateAnswer.ts | 2 +- server/src/events/UpdatePlayer.ts | 28 ++++++++++++++------------- 10 files changed, 44 insertions(+), 39 deletions(-) diff --git a/server/src/events/DeleteGame.ts b/server/src/events/DeleteGame.ts index 572cdcd..846195a 100644 --- a/server/src/events/DeleteGame.ts +++ b/server/src/events/DeleteGame.ts @@ -21,7 +21,7 @@ export default (io: Server, socket: Socket, data: DeleteGame) => { let player = game.players.find(x => x.isHost); if (player != null && player.socket !== socket) { - log.warn(`${player.name} attempted to delete game ${game.id}.`); + game.log.warn(`${player.name} attempted to delete game.`); socket.emit(`GameDeleted`, { status: 403, message: `Not allowed to delete a game that you are not the host of.`, @@ -31,6 +31,7 @@ export default (io: Server, socket: Socket, data: DeleteGame) => { }; // Delete game + game.log.debug(`Game deleted.`) delete games[data.game_code]; io.to(game.id).emit(`GameDeleted`, { status: 200 }); } diff --git a/server/src/events/GetPastQuestions.ts b/server/src/events/GetPastQuestions.ts index 6c4c850..509ac0d 100644 --- a/server/src/events/GetPastQuestions.ts +++ b/server/src/events/GetPastQuestions.ts @@ -6,7 +6,7 @@ export default (io: Server, socket: Socket, data: GetPastQuestions) => { // Assert game exists if (!games[data.game_code]) { - log.debug(`Can't delete game that doesn't exist: ${data.game_code}`); + log.debug(`Can't get questions game that doesn't exist: ${data.game_code}`); socket.emit(`Error`, { status: 404, message: `Game with code ${data.game_code} could not be found`, @@ -17,7 +17,7 @@ export default (io: Server, socket: Socket, data: GetPastQuestions) => { let game = games[data.game_code]; let team = game.teams[data.team - 1]; - log.silly(`Past questions retrieved for team ${data.team} (gID=${game.id})`); + game.log.silly(`Past questions retrieved for team ${data.team}`); socket.emit(`PastQuestions`, { questions: team.questions }); diff --git a/server/src/events/JoinGame.ts b/server/src/events/JoinGame.ts index 70d4984..a04e9ea 100644 --- a/server/src/events/JoinGame.ts +++ b/server/src/events/JoinGame.ts @@ -15,7 +15,6 @@ export default (io: Server, socket: Socket, data: JoinGame) => { }); return; }; - let game = games[data.game_code]; @@ -23,6 +22,7 @@ export default (io: Server, socket: Socket, data: JoinGame) => { let sameName = game.players.find(x => x.name == data.name); if (sameName != null) { if (!game.ingame) { + game.log.info(`Client attempted to connect using name already in use.`); socket.emit(`GameJoined`, { status: 400, message: `A player already has that name in the game.`, @@ -34,9 +34,11 @@ export default (io: Server, socket: Socket, data: JoinGame) => { // Player has the same name but is allowed to rejoin if they // disconnect in the middle of the game if (!sameName.socket.connected) { + game.log.info(`Player Reconnected to the game (name=${data.name})`); socket.emit(`GameRejoined`, { status: 200 }); return; } else { + game.log.debug(`${socket.id} attempted to claim ${sameName.socket.id}'s game spot.`); socket.emit(`GameJoined`, { status: 403, message: `Can't connect to an already connected client`, @@ -49,7 +51,7 @@ export default (io: Server, socket: Socket, data: JoinGame) => { // Assert game is not in-progess if (game.ingame) { - log.debug(`${data.name} tried to connect to gID:${game.id} in the middle of a game.`); + game.log.debug(`${data.name} tried to connect in the middle of a game.`); socket.emit(`GameJoined`, { status: 403, message: `Cannot connect to a game that's in progress.`, @@ -61,7 +63,7 @@ export default (io: Server, socket: Socket, data: JoinGame) => { let player = new Player(data.name, socket); game.players.push(player); - log.debug(`${data.name} joined gID:${game.id}`); + game.log.debug(`${data.name} joined the game`); socket.join(game.id); socket.emit(`GameJoined`, { status: 200, diff --git a/server/src/events/LeaveGame.ts b/server/src/events/LeaveGame.ts index 92b33cd..43725e6 100644 --- a/server/src/events/LeaveGame.ts +++ b/server/src/events/LeaveGame.ts @@ -19,7 +19,7 @@ export default (io: Server, socket: Socket, data: LeaveGame) => { // Ensure it's not the host trying to leave so that the game can // actually start if (game.host.socket == socket) { - log.debug(`Host `) + game.log.debug(`Host attempted to leave game. (name=${game.host.name})`); socket.emit(`GameLeft`, { status: 303, message: `Can't leave the game as the host, use "DeleteGame".`, @@ -41,20 +41,20 @@ export default (io: Server, socket: Socket, data: LeaveGame) => { switch (role) { case "guesser": - log.silly(`Removed ${player.name} from guesser role.`); + game.log.silly(`Removed ${player.name} from guesser role.`); team.guessers = team.guessers.filter(p => p.socket !== socket); - break; - case "writer": - log.silly(`Removed ${player.name} from writer role.`); - team.writer = null; - break; + break; + case "writer": + game.log.silly(`Removed ${player.name} from writer role.`); + team.writer = null; + break; }; }; game.players = game.players.filter(p => p.socket != socket); - log.debug(`${player.name} left gID:${game.id}`); + game.log.debug(`${player.name} left the game.`); socket.to(game.id).emit(`PlayerUpdate`, { status: 200, action: `remove`, diff --git a/server/src/events/NewHand.ts b/server/src/events/NewHand.ts index 78384df..870d471 100644 --- a/server/src/events/NewHand.ts +++ b/server/src/events/NewHand.ts @@ -23,12 +23,12 @@ export default (io: Server, socket: Socket, data: NewHand) => { for (var card of team.hand) { deck.discard(card); team.removeCard(card); - log.silly(`[${game.id}] Removing card: '${card}' from team ${data.team}'s hand.`); + game.log.silly(`Removing card: '${card}' from team ${data.team}'s hand.`); }; // Add the questions and then alert the game clients about the changes team.addCardsToHand(deck.draw(conf.game.hand_size)); - log.silly(`[${game.id}] Drew a new hand of cards for team ${data.team}.`); + game.log.silly(`Drew a new hand of cards for team ${data.team}.`); io.to(game.id).emit(`UpdateHand`, { mode: `replace`, questions: team.hand, diff --git a/server/src/events/ObjectList.ts b/server/src/events/ObjectList.ts index 44c203c..04f6cfe 100644 --- a/server/src/events/ObjectList.ts +++ b/server/src/events/ObjectList.ts @@ -6,7 +6,7 @@ export default (io: Server, socket: Socket, data: ObjectList) => { // Assert game exists if (!games[data.game_code]) { - log.debug(`Can't delete game that doesn't exist: ${data.game_code}`); + log.debug(`Can't get objects for game that doesn't exist: ${data.game_code}`); socket.emit(`Error`, { status: 404, message: `Game with code ${data.game_code} could not be found`, @@ -16,7 +16,7 @@ export default (io: Server, socket: Socket, data: ObjectList) => { }; let game = games[data.game_code]; - log.silly(`[${game.id}] Sent client object card.`); + game.log.silly(`Sent client object card`); socket.emit(`ObjectList`, { objects: game.objects }); diff --git a/server/src/events/SelectObject.ts b/server/src/events/SelectObject.ts index b8130c5..310e613 100644 --- a/server/src/events/SelectObject.ts +++ b/server/src/events/SelectObject.ts @@ -6,7 +6,7 @@ export default (io: Server, socket: Socket, data: SelectObject) => { // Assert game exists if (!games[data.game_code]) { - log.debug(`Can't delete game that doesn't exist: ${data.game_code}`); + log.debug(`Can't choose an object for a game that doesn't exist: ${data.game_code}`); socket.emit(`Error`, { status: 404, message: `Game with code ${data.game_code} could not be found`, @@ -18,7 +18,7 @@ export default (io: Server, socket: Socket, data: SelectObject) => { // Assert that the object is actually a valid choice if (!game.objects.includes(data.object)) { - log.warn(`[${game.id}] Someone tried selecting an object that doesn't exist: ${data.object}`); + game.log.warn(`Someone tried selecting an object that doesn't exist: ${data.object}`); socket.emit(`Error`, { status: 409, message: `That object isn't on the card.`, @@ -27,7 +27,7 @@ export default (io: Server, socket: Socket, data: SelectObject) => { return; }; - log.debug(`[${game.id}] Object has been chosen: ${data.object}`); + game.log.debug(`Object has been chosen: ${data.object}`); game.object = data.object; io.to(game.id).emit(`ChosenObject`, { object: data.object diff --git a/server/src/events/SendCard.ts b/server/src/events/SendCard.ts index 62949b1..77a925f 100644 --- a/server/src/events/SendCard.ts +++ b/server/src/events/SendCard.ts @@ -6,7 +6,7 @@ export default (io: Server, socket: Socket, data: SendCard) => { // Assert game exists if (!games[data.game_code]) { - log.debug(`Can't delete game that doesn't exist: ${data.game_code}`); + log.debug(`Can't send a card in a game that doesn't exist: ${data.game_code}`); socket.emit(`Error`, { status: 404, message: `Game with code ${data.game_code} could not be found`, @@ -20,7 +20,7 @@ export default (io: Server, socket: Socket, data: SendCard) => { // The writer is answering if (data.from === "writer") { - log.debug(`[${game.id}] Writer selected question to answer.`); + game.log.debug(` Writer selected question to answer.`); deck.discard(data.text); team.selectQuestion(data.text); @@ -33,7 +33,7 @@ export default (io: Server, socket: Socket, data: SendCard) => { // The writer is sending the card to the writer else if (data.from === "guesser") { - log.debug(`[${game.id}] Guesser is sending the card to the writer.`); + game.log.debug(`Guesser is sending the card to the writer.`); // Update the team's hand team.removeCard(data.text); @@ -54,7 +54,7 @@ export default (io: Server, socket: Socket, data: SendCard) => { } else { - log.warn(`[${game.id}] Unknown role in the "from" property: ${data.from}`); + game.log.warn(`Unknown role in the "from" property: ${data.from}`); socket.emit(`Error`, { status: 400, message: `Unknown role in the "from" property: ${data.from}`, diff --git a/server/src/events/UpdateAnswer.ts b/server/src/events/UpdateAnswer.ts index 65c8854..1b9b5da 100644 --- a/server/src/events/UpdateAnswer.ts +++ b/server/src/events/UpdateAnswer.ts @@ -6,7 +6,7 @@ export default (io: Server, socket: Socket, data: UpdateAnswer) => { // Assert game exists if (!games[data.game_code]) { - log.debug(`Can't delete game that doesn't exist: ${data.game_code}`); + log.debug(`Can't update answer in a game that doesn't exist: ${data.game_code}`); socket.emit(`Error`, { status: 404, message: `Game with code ${data.game_code} could not be found`, diff --git a/server/src/events/UpdatePlayer.ts b/server/src/events/UpdatePlayer.ts index e59278a..3f7d6ef 100644 --- a/server/src/events/UpdatePlayer.ts +++ b/server/src/events/UpdatePlayer.ts @@ -18,11 +18,9 @@ export default (io: Server, socket: Socket, data: UpdatePlayer) => { // Execute the corresponding action code switch (data.action) { case "modify": - log.debug(`Modifying a player. (gID=${data.game_code},name=${data.name})`); modifyPlayer(io, socket, data); break; case "remove": - log.debug(`Removing a player. (gID=${data.game_code},name=${data.name})`); removePlayer(io, socket, data); break; default: @@ -49,7 +47,7 @@ const modifyPlayer = (io: Server, socket: Socket, data: UpdatePlayer): void => { // Ensure that the player was found correctly so it is not undefined if (player == null) { - log.debug(`Can't modify a player that doesn't exist. (name=${data.name},gID=${game.id})`); + game.log.debug(`Can't modify a player that doesn't exist. (name=${data.name})`); socket.emit(`PlayerUpdate`, { status: 404, message: `Cannot find player with the name: ${data.name}`, @@ -60,7 +58,7 @@ const modifyPlayer = (io: Server, socket: Socket, data: UpdatePlayer): void => { // Assert the player is modifying themselves if (player.socket !== socket) { - log.debug(`${socket.id} is trying to modify a different player: ${data.name} (gID=${game.id})`); + game.log.debug(`${socket.id} is trying to modify a different player: ${data.name}`); socket.emit(`PlayerUpdate`, { status: 403, message: `Cannot modify other players`, @@ -70,7 +68,7 @@ const modifyPlayer = (io: Server, socket: Socket, data: UpdatePlayer): void => { }; if (!data.to) { - log.silly(`Client did not include a "to" object in request.`) + game.log.silly(`Client did not include a "to" object in request.`) socket.emit(`PlayerUpdate`, { status: 400, message: `The "to" property must to be specified in the request.`, @@ -81,26 +79,29 @@ const modifyPlayer = (io: Server, socket: Socket, data: UpdatePlayer): void => { // The player is joining a team for the first time if (!data.from) { - log.silly(`Client included a "to" but not a "from" property.`); + game.log.silly(`Client included a "to" but not a "from" property`); let team = game.teams[data.to.team - 1]; switch (data.to.role) { case "guesser": if (team.guessers.length >= 7) { + game.log.debug(`Game cannot have more than 7 guessers`); socket.emit(`PlayerUpdate`, { status: 403, message: `A team can't have 8 or more ${conf.game.guesser_name}`, source: `UpdatePlayer.Modify` }); return; - } + }; team.guessers.push(player); + game.log.silly(`${player.name} became a guesser`); // Move the rooms the player is in player.socket.join(`${game.id}:${data.to.team}:guesser`) break; case "writer": if (team.writer) { + game.log.debug(`Game cannot have more than 1 writer`); socket.emit(`PlayerUpdate`, { status: 403, message: `Someone on that team is already the ${conf.game.writer_name}`, @@ -110,6 +111,7 @@ const modifyPlayer = (io: Server, socket: Socket, data: UpdatePlayer): void => { }; // Change team object team.writer = player; + game.log.silly(`${player.name} became the writer`); // Move the rooms the player is in player.socket.join(`${game.id}:${data.to.team}:writer`); @@ -119,7 +121,7 @@ const modifyPlayer = (io: Server, socket: Socket, data: UpdatePlayer): void => { // Check if the player is just swapping roles on the same team else if (data.from.team === data.to.team) { - log.silly(`Client provided "to" and "from" objects for the same team.`) + game.log.silly(`Client provided "to" and "from" objects for the same team.`) let team = game.teams[data.to.team - 1]; switch (data.to.role) { case "guesser": @@ -160,7 +162,7 @@ const modifyPlayer = (io: Server, socket: Socket, data: UpdatePlayer): void => { // The player is swapping roles and teams else { - log.silly(`Client provided both "to" and "from" for different teams.`); + game.log.silly(`Client provided both "to" and "from" for different teams.`); let oldTeam = game.teams[data.from.team - 1]; let newTeam = game.teams[data.to.team - 1]; @@ -232,7 +234,7 @@ const removePlayer = (io: Server, socket: Socket, data: UpdatePlayer): void => { // Ensure that the player was found correctly so it is not undefined if (player == null) { - log.debug(`Can't delete a player that doesn't exist. (name=${data.name},gID=${game.id})`); + game.log.debug(`Can't delete a player that doesn't exist. (name=${data.name})`); socket.emit(`PlayerUpdate`, { status: 404, message: `Cannot find player with the name: ${data.name}`, @@ -256,16 +258,16 @@ const removePlayer = (io: Server, socket: Socket, data: UpdatePlayer): void => { for (var team of game.teams) { if (team.writer == player) { team.writer = null; - log.silly(`Removed ${player.name} from the writer role.`); + game.log.silly(`Removed ${player.name} from the writer role.`); } else if (team.guessers.includes(player)) { team.guessers = team.guessers.filter(x => x !== player); - log.silly(`Removed ${player.name} from the guesser role`); + game.log.silly(`Removed ${player.name} from the guesser role`); }; }; game.players = game.players.filter(x => x !== player); - log.info(`${host.name} kicked ${player.name} from game ${game.id}`); + game.log.info(`${host.name} kicked ${player.name} from game`); io.to(game.id).emit(`PlayerUpdate`, { action: "remove", name: player.name,