import { playerData } from "../Player/playerData" import { game } from "../game"; export function registerLobbyCallbacks(socket){ socket.on('lobby/playerUpdate', (data) => { if(!socket.hasOwnProperty("userId")) return; let buff = Buffer.from(data, 'base64'); let data1 : playerData = JSON.parse(buff.toString('utf-8')); data1.socketId = socket.id; let idx = game.lobbyState.players.findIndex((pl) => pl.socketId == socket.id) if(idx == -1){ game.lobbyState.players.push(data1) socket.emit('lobby/messages', JSON.stringify(game.messages)) } else{ game.lobbyState.players[idx] = data1 } }); socket.on('lobby/lobbyUpdate', (data) => { if(!socket.hasOwnProperty("userId")) return; let buff = Buffer.from(data, 'base64'); let data1 = JSON.parse(buff.toString('utf-8')); game.lobbyState.objects = data1.objects }); socket.on('lobby/message', (data) => { if(!socket.hasOwnProperty("userId")) return; let buff = Buffer.from(data, 'base64'); data = JSON.parse(buff.toString('utf-8')); data.timestamp = new Date().toLocaleString(); while(game.messages.length >= 20){ game.messages.pop(); } game.messages.unshift(data) socket.io.emit('lobby/messages', JSON.stringify(game.messages)) }); }