Standardize log output
Add sendUpdateToPlayer[s] Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
This commit is contained in:
parent
3224aca2b2
commit
3582bdc148
@ -15,6 +15,13 @@ const MAX_SETTLEMENTS = 5;
|
||||
const MAX_CITIES = 4;
|
||||
const MAX_ROADS = 15;
|
||||
|
||||
const debug = {
|
||||
audio: false,
|
||||
get: true,
|
||||
set: true,
|
||||
update: false
|
||||
};
|
||||
|
||||
let gameDB;
|
||||
|
||||
require("../db/games").then(function(db) {
|
||||
@ -794,10 +801,10 @@ const setPlayerName = (game, session, name) => {
|
||||
/* Update the session object from tmp, but retain websocket
|
||||
* from active session */
|
||||
Object.assign(session, tmp, { ws: session.ws });
|
||||
console.log(`${name} has been reallocated to a new session.`);
|
||||
console.log(`${info}: ${name} has been reallocated to a new session.`);
|
||||
delete game.sessions[id];
|
||||
} else {
|
||||
return `${name} is already taken and has been active in the last minute.`;
|
||||
return `${info}: ${name} is already taken and has been active in the last minute.`;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -841,12 +848,12 @@ const setPlayerName = (game, session, name) => {
|
||||
if (session.ws && hasAudio) {
|
||||
join(audio[game.id], session, game.id);
|
||||
}
|
||||
console.log(message);
|
||||
console.log(`${info}: ${message}`);
|
||||
addChatMessage(game, null, message);
|
||||
|
||||
/* Rebuild the unselected list */
|
||||
if (!session.color) {
|
||||
console.log(`Adding ${session.name} to the unselected`);
|
||||
console.log(`${info}: Adding ${session.name} to the unselected`);
|
||||
}
|
||||
game.unselected = [];
|
||||
for (let id in game.sessions) {
|
||||
@ -855,20 +862,17 @@ const setPlayerName = (game, session, name) => {
|
||||
}
|
||||
}
|
||||
|
||||
sendUpdateToPlayer(session, {
|
||||
name: session.name,
|
||||
color: undefined,
|
||||
live: session.live,
|
||||
player: session.player
|
||||
});
|
||||
sendUpdateToPlayers(game, {
|
||||
players: game.players,
|
||||
unselected: getFilteredUnselected(game),
|
||||
chat: game.chat
|
||||
});
|
||||
session.ws.send(JSON.stringify({
|
||||
type: 'game-update',
|
||||
update: {
|
||||
name: session.name,
|
||||
color: undefined,
|
||||
live: session.live,
|
||||
player: session.player
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
const colorToWord = (color) => {
|
||||
@ -937,21 +941,18 @@ const setPlayerColor = (game, session, color) => {
|
||||
addChatMessage(game, null,
|
||||
`There are no longer enough players to start a game.`);
|
||||
}
|
||||
sendUpdateToPlayer(session, {
|
||||
name: session.name,
|
||||
color: undefined,
|
||||
live: session.live,
|
||||
player: session.player
|
||||
});
|
||||
sendUpdateToPlayers(game, {
|
||||
active: game.active,
|
||||
unselected: getFilteredUnselected(game),
|
||||
players: game.players,
|
||||
chat: game.chat
|
||||
});
|
||||
session.ws.send(JSON.stringify({
|
||||
type: 'game-update',
|
||||
update: {
|
||||
name: session.name,
|
||||
color: undefined,
|
||||
live: session.live,
|
||||
player: session.player
|
||||
}
|
||||
}));
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -993,16 +994,13 @@ const setPlayerColor = (game, session, color) => {
|
||||
update.active = game.active;
|
||||
}
|
||||
|
||||
sendUpdateToPlayers(game, update);
|
||||
session.ws.send(JSON.stringify({
|
||||
type: 'game-update',
|
||||
update: {
|
||||
sendUpdateToPlayer(session, {
|
||||
name: session.name,
|
||||
color: session.color,
|
||||
live: session.live,
|
||||
player: session.player
|
||||
}
|
||||
}));
|
||||
});
|
||||
sendUpdateToPlayers(game, update);
|
||||
};
|
||||
|
||||
const addActivity = (game, session, message) => {
|
||||
@ -2761,11 +2759,12 @@ const join = (peers, session, id) => {
|
||||
const ws = session.ws;
|
||||
|
||||
if (!session.name) {
|
||||
console.error(`${session.id} - join - No name set yet. Audio not available.`);
|
||||
console.error(`${session.id}: <- join - No name set yet. Audio not available.`);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`${session.id} - join - ${session.name}`);
|
||||
console.log(`${session.id}: <- join - ${session.name}`);
|
||||
console.log(`${all}: -> addPeer - ${session.name}`);
|
||||
|
||||
if (session.name in peers) {
|
||||
console.log(`${session.id}:${session.name} - Already joined to Audio.`);
|
||||
@ -2788,20 +2787,23 @@ const join = (peers, session, id) => {
|
||||
peers[session.name] = ws;
|
||||
};
|
||||
|
||||
const getName = (session) => {
|
||||
return session.name ? session.name : "Unnamed";
|
||||
}
|
||||
|
||||
const part = (peers, session, id) => {
|
||||
const ws = session.ws;
|
||||
|
||||
console.log(`${session.id}:${getName(session)} - Audio part.`);
|
||||
|
||||
if (!(session.name in peers)) {
|
||||
console.log(`${session.id}:${getName(session)} - Does not exist in game audio.`);
|
||||
if (!session.name) {
|
||||
console.error(`${session.id}: <- part - No name set yet. Audio not available.`);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(session.name in peers)) {
|
||||
console.log(`${session.id}: <- ${session.name} - Does not exist in game audio.`);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`${session.id}: <- ${session.name} - Audio part.`);
|
||||
console.log(`${all}: -> removePeer - ${session.name}`);
|
||||
|
||||
delete peers[session.name];
|
||||
|
||||
/* Remove this peer from all other peers, and remove each
|
||||
@ -2818,6 +2820,11 @@ const part = (peers, session, id) => {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const getName = (session) => {
|
||||
return session.name ? session.name : "Unnamed";
|
||||
}
|
||||
|
||||
const saveGame = async (game) => {
|
||||
/* Shallow copy game, filling its sessions with a shallow copy of sessions so we can then
|
||||
* delete the player field from them */
|
||||
@ -2876,10 +2883,32 @@ const departLobby = (game, session, color) => {
|
||||
|
||||
sendUpdateToPlayers(game, update);
|
||||
}
|
||||
const all = `[ all ]`;
|
||||
const info = `[ info ]`;
|
||||
const todo = `[ todo ]`;
|
||||
|
||||
const sendGameToPlayers = (game) => {
|
||||
console.log(`${all}: -> ${game.id} sendGamePlayers - full game`);
|
||||
|
||||
for (let key in game.sessions) {
|
||||
const _session = game.sessions[key];
|
||||
if (!_session.ws) {
|
||||
continue;
|
||||
}
|
||||
_session.ws.send(JSON.stringify({
|
||||
type: 'game-update',
|
||||
update: getFilteredGameForPlayer(game, _session)
|
||||
}));
|
||||
}
|
||||
};
|
||||
|
||||
const sendUpdateToPlayers = async (game, update) => {
|
||||
if (debug.update) {
|
||||
console.log(`[ all ]: -> ${game.id} sendUpdateToPlayers - `, update);
|
||||
} else {
|
||||
const keys = Object.getOwnPropertyNames(update);
|
||||
console.log(`[ all ]:${game.id} - sendUpdateToPlayers - ${keys.join(',')}`);
|
||||
console.log(`[ all ]: -> ${game.id} sendUpdateToPlayers - ${keys.join(',')}`);
|
||||
}
|
||||
const message = JSON.stringify({
|
||||
type: 'game-update',
|
||||
update
|
||||
@ -2894,6 +2923,21 @@ const sendUpdateToPlayers = async (game, update) => {
|
||||
await saveGame(game);
|
||||
}
|
||||
|
||||
|
||||
const sendUpdateToPlayer = async (session, update) => {
|
||||
if (debug.update) {
|
||||
console.log(`${session.id}: -> sendUpdateToPlayer - `, update);
|
||||
} else {
|
||||
const keys = Object.getOwnPropertyNames(update);
|
||||
console.log(`${session.id}: -> sendUpdateToPlayer - ${keys.join(',')}`);
|
||||
}
|
||||
const message = JSON.stringify({
|
||||
type: 'game-update',
|
||||
update
|
||||
});
|
||||
session.ws.send(message);
|
||||
}
|
||||
|
||||
const getFilteredUnselected = (game) => {
|
||||
if (!game.unselected) {
|
||||
return [];
|
||||
@ -2929,19 +2973,6 @@ const parseChatCommands = (game, message) => {
|
||||
}
|
||||
};
|
||||
|
||||
const sendGameToPlayers = (game) => {
|
||||
for (let key in game.sessions) {
|
||||
const _session = game.sessions[key];
|
||||
if (!_session.ws) {
|
||||
continue;
|
||||
}
|
||||
_session.ws.send(JSON.stringify({
|
||||
type: 'game-update',
|
||||
update: getFilteredGameForPlayer(game, _session)
|
||||
}));
|
||||
}
|
||||
};
|
||||
|
||||
const sendError = (session, error) => {
|
||||
session.ws.send(JSON.stringify({ type: 'error', error }));
|
||||
}
|
||||
@ -3042,12 +3073,12 @@ router.ws("/ws/:id", async (ws, req) => {
|
||||
|
||||
case 'relayICECandidate': {
|
||||
if (!(id in audio)) {
|
||||
console.error(`${session.id}:${id} - relayICECandidate - Does not have Audio`);
|
||||
console.error(`${session.id}:${id} <- relayICECandidate - Does not have Audio`);
|
||||
return;
|
||||
}
|
||||
|
||||
const { peer_id, ice_candidate } = data.config;
|
||||
console.log(`${short}:${id} - relayICECandidate ${getName(session)} to ${peer_id}`,
|
||||
if (debug.audio) console.log(`${short}:${id} <- relayICECandidate ${getName(session)} to ${peer_id}`,
|
||||
ice_candidate);
|
||||
|
||||
message = JSON.stringify({
|
||||
@ -3066,7 +3097,7 @@ router.ws("/ws/:id", async (ws, req) => {
|
||||
return;
|
||||
}
|
||||
const { peer_id, session_description } = data.config;
|
||||
console.log(`${short}:${id} - relaySessionDescription ${getName(session)} to ${peer_id}`,
|
||||
if (debug.audio) console.log(`${short}:${id} - relaySessionDescription ${getName(session)} to ${peer_id}`,
|
||||
session_description);
|
||||
message = JSON.stringify({
|
||||
type: 'sessionDescription',
|
||||
@ -3083,15 +3114,11 @@ router.ws("/ws/:id", async (ws, req) => {
|
||||
|
||||
case 'game-update':
|
||||
console.log(`${short}:${id}:${getName(session)} - full game update.`);
|
||||
message = JSON.stringify({
|
||||
type: 'game-update',
|
||||
update: getFilteredGameForPlayer(game, session)
|
||||
});
|
||||
session.ws.send(message);
|
||||
sendUpdateToPlayer(session, getFilteredGameForPlayer(game, session));
|
||||
break;
|
||||
|
||||
case 'player-name':
|
||||
console.log(`${short}:${id}:${getName(session)} - setPlayerName - ${data.name}`)
|
||||
console.log(`${short}: <- ${id}:${getName(session)} - setPlayerName - ${data.name}`)
|
||||
error = setPlayerName(game, session, data.name);
|
||||
if (error) {
|
||||
sendError(session, error);
|
||||
@ -3101,7 +3128,7 @@ router.ws("/ws/:id", async (ws, req) => {
|
||||
break;
|
||||
|
||||
case 'set':
|
||||
console.log(`${short}:${id}:${getName(session)} - ${data.type} ${data.field} = ${data.value}`);
|
||||
console.log(`${short}: <- ${id}:${getName(session)} - ${data.type} ${data.field} = ${data.value}`);
|
||||
switch (data.field) {
|
||||
case 'state':
|
||||
warning = setGameState(game, session, data.value);
|
||||
@ -3127,7 +3154,7 @@ router.ws("/ws/:id", async (ws, req) => {
|
||||
break;
|
||||
|
||||
case 'get':
|
||||
console.log(`${short}:${id}:${getName(session)} - ${data.type} ${data.fields.join(',')}`);
|
||||
console.log(`${short}: <- ${id}:${getName(session)} - ${data.type} ${data.fields.join(',')}`);
|
||||
update = {};
|
||||
data.fields.forEach((field) => {
|
||||
switch (field) {
|
||||
@ -3164,13 +3191,7 @@ router.ws("/ws/:id", async (ws, req) => {
|
||||
break;
|
||||
}
|
||||
});
|
||||
console.log(`${short}:${id} - sending update: ` +
|
||||
Object.getOwnPropertyNames(update).join(','));
|
||||
message = JSON.stringify({
|
||||
type: 'game-update',
|
||||
update
|
||||
});
|
||||
session.ws.send(message);
|
||||
sendUpdateToPlayer(session, update);
|
||||
break;
|
||||
|
||||
case 'chat':
|
||||
@ -3315,10 +3336,7 @@ const sendGameToSession = (session, reducedSessions, game, reducedGame, error, r
|
||||
console.error(`No WebSocket connection to ${session.name}`);
|
||||
} else {
|
||||
console.log(`Sending update to ${session.id}:${session.name ? session.name : 'Unnamed'}`);
|
||||
session.ws.send(JSON.stringify({
|
||||
type: 'game-update',
|
||||
update: playerGame
|
||||
}));
|
||||
sendUpdateToPlayer(session, playerGame);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -3480,7 +3498,7 @@ const getFilteredGameForPlayer = (game, session) => {
|
||||
}
|
||||
});
|
||||
|
||||
console.log('TODO: Move game win state to card play section');
|
||||
console.log('${todo}: Move game win state to card play section');
|
||||
if (!game.winner && (player.points >= 10 && session.color === key)) {
|
||||
game.winner = key;
|
||||
game.state = 'winner';
|
||||
|
Loading…
x
Reference in New Issue
Block a user