UNPKG

1.96 kBJavaScriptView Raw
1var Debug = false;
2
3exports.rooms = {};
4
5exports.roomExists = function(socket, room) {
6 if(!this.rooms[room]) return false;
7 return true;
8};
9
10exports.createRoom = function(socket, room) {
11 if(Debug) console.log(socket.id+": Creating Room: "+room);
12 this.rooms[room] = {owner:socket.id, users:[], variables: {}};
13}
14
15exports.set = function(socket, variable, content) {
16 if(Debug) console.log(socket.id+": Creating variable: "+variable+" with content: "+content);
17 if(!this.roomExists(socket, socket.roomdata_room)){
18 console.error("You have tried setting a room variable but this socket is not in any room!");
19 return false;
20 }
21 this.rooms[socket.roomdata_room].variables[variable] = content;
22}
23
24exports.get = function(socket, variable, content) {
25 if(Debug) console.log(socket.id+": Getting variable: "+variable);
26 if(variable == "room"){
27 if(!socket.roomdata_room) return undefined;
28 return socket.roomdata_room;
29 }
30 if(!this.roomExists(socket, socket.roomdata_room)){
31 console.error("You have tried getting a room variable but this socket is not in any room!");
32 return undefined;
33 }
34 if(variable == "owner") return this.rooms[socket.roomdata_room].owner
35 if(variable == "users") return this.rooms[socket.roomdata_room].users
36 return this.rooms[socket.roomdata_room].variables[variable];
37}
38
39exports.joinRoom = function(socket, room) {
40 if(Debug) console.log(socket.id+": Joining room: "+room);
41 if(socket.roomdata_room) this.leaveRoom(socket, room);
42 if(!this.roomExists(socket, room)) this.createRoom(socket, room);
43 this.rooms[room].users.push(socket.id);
44 socket.join(room);
45 socket.roomdata_room = room;
46};
47
48exports.leaveRoom = function(socket) {
49 if(Debug) console.log(socket.id+": Leaving room: "+socket.roomdata_room);
50 var i = this.rooms[socket.roomdata_room].users.indexOf(socket.id);
51 if(i != -1) this.rooms[socket.roomdata_room].users.splice(i, 1);
52 socket.leave(socket.roomdata_room);
53}
\No newline at end of file