Initial server state

This commit is contained in:
2025-02-28 22:36:11 +01:00
parent 5ab0b61f80
commit 11b3b48caa
7 changed files with 225 additions and 43 deletions

View File

@ -8,7 +8,7 @@ module.exports.connectUserToRoom = (roomId, user) => {
} else {
rooms[roomId] = {members: [{...user, creator: true}], settings: {}};
}
console.log(JSON.stringify(rooms));
console.log(`User ${user.name} connected to room ${roomId}`);
}
module.exports.getUserRoom = (userId) => {
@ -18,6 +18,21 @@ module.exports.getUserRoom = (userId) => {
if (memberIndex !== -1) return roomId;
}
return null;
}
module.exports.getRoomUsers = (roomId) => {
if (rooms[roomId]) {
return rooms[roomId].members;
}
return [];
}
module.exports.getRoomCreator = (roomId) => {
if (rooms[roomId]) {
return rooms[roomId].members.find(member => member.creator);
}
return null;
}
module.exports.disconnectUser = (userId) => {
@ -26,12 +41,17 @@ module.exports.disconnectUser = (userId) => {
const memberIndex = room.members.findIndex(member => member.id === userId);
if (memberIndex !== -1) {
if (room.members[memberIndex].creator) {
if (room.members.length > 1) room.members[1].creator = true;
if (room.members[memberIndex].creator && room.members.length > 1) {
room.members[1].creator = true;
}
room.members.splice(memberIndex, 1);
if (room.members.length === 0) delete rooms[roomId];
console.log(`User ${userId} disconnected from room ${roomId}`);
if (room.members.length === 0) {
delete rooms[roomId];
console.log(`Room ${roomId} deleted because it's empty`);
}
break;
}