🐛 fix bugs coming from rooms and players deletion. Maybe still some that I havn't notice yet

docker-deployment
Vincent ASTOLFI 9 months ago
parent 06f8b6dbcf
commit d89a641bea

@ -136,7 +136,6 @@ io.on("connection", (socket) => {
socket.on("disconnect", () => { socket.on("disconnect", () => {
const index = players.findIndex((p) => p.id === socket.id) const index = players.findIndex((p) => p.id === socket.id)
// if there is no room this line creates error
const roomIndex = rooms.findIndex(room => const roomIndex = rooms.findIndex(room =>
room.players.some((player) => player.id === socket.id) room.players.some((player) => player.id === socket.id)
); );
@ -157,13 +156,14 @@ io.on("connection", (socket) => {
} }
} }
players.splice(index, 1) if (index !== -1) {
players.splice(index, 1)
}
console.log(`Player disconnected: ${socket.id}`); console.log(`Player disconnected: ${socket.id}`);
}) })
socket.on("first connection", (socketId) => { socket.on("first connection", (socketId) => {
// error my occurs if cookie is expired
const cookies = socket.request.headers.cookie; const cookies = socket.request.headers.cookie;
const authToken = cookies.split('; ').find(cookie => cookie.startsWith('authToken=')).split('=')[1]; const authToken = cookies.split('; ').find(cookie => cookie.startsWith('authToken=')).split('=')[1];
@ -267,19 +267,14 @@ io.on("connection", (socket) => {
}); });
socket.on("game ended", (roomId) => { socket.on("game ended", (roomId) => {
const room = rooms.find((r) => r.id === roomId)
const roomIndex = rooms.findIndex((r) => r.id === roomId) const roomIndex = rooms.findIndex((r) => r.id === roomId)
room.players.forEach(player => { rooms[roomIndex].players.forEach(player => {
player.resetGrid() player.resetGrid()
io.to(player.id).emit("go to menu") io.to(player.id).emit("go to menu")
}); });
room.players = [] rooms.splice(roomIndex, 1)
rooms.slice(roomIndex, 1)
delete room
console.log("rooms list : ", rooms)
}) })
socket.on("reset grid", (roomId) => { socket.on("reset grid", (roomId) => {
@ -318,5 +313,5 @@ const sendMoveToPlayers = (moveData) => {
http.listen(port, () => { http.listen(port, () => {
console.log(`Listening on http://localhost:${port}`); //console.log(`Listening on http://localhost:${port}`);
}); });
Loading…
Cancel
Save