// Sends Updates to socket when players change const wrtColor = require('../common/wrtColor') function mapRemoveLastActivityProp (player) { // Make this specific by props to remove let {lastActivity, ...other} = player // return { // id: player.id, // username: player.username, // gameid: player.gameid // } return other } function continuousEmitPlayers (state,io) { let previousPlayersRelevant = [] let timerId = setTimeout(function tick() { // get players excluding the "lastActivity" because it is constantly updating playersRelevant = state.players.map(mapRemoveLastActivityProp) // console.log(playersRelevant) // convert to string for comparison if ((JSON.stringify(playersRelevant)) !== (JSON.stringify(previousPlayersRelevant))) { // if changes happen, emit to all sockets // wrtColor.blue('change to Players. Push to Sockets') io.emit('playersUpdate', playersRelevant) } previousPlayersRelevant = playersRelevant timerId = setTimeout(tick, 1000) }, 1000) } function socketGetPlayers (state,socket) { playersRelevant = state.players.map(mapRemoveLastActivityProp) socket.emit('playersUpdate', playersRelevant) } function checkValidPlayerName(players,name) { let response = { valid: true, reason: "" } // Returns True/False // 15 character limit // No special characters // name not in use already } function socketRegisterPlayer (io,state,data) { wrtColor.warn('socketRegisterPlayer') console.log(data) //console.log(state.players) io.emit('msg',{poop:"salad"}) let checkResult = checkValidPlayerName(state.players, name) console.log(checkResult) // add them to state.players } module.exports = { continuousEmitPlayers: continuousEmitPlayers, socketGetPlayers: socketGetPlayers, socketRegisterPlayer: socketRegisterPlayer, }