1 | var Debug = false;
|
2 |
|
3 | exports.rooms = {};
|
4 |
|
5 | exports.roomExists = function(socket, room) {
|
6 | if(!this.rooms[room]) return false;
|
7 | return true;
|
8 | };
|
9 |
|
10 | exports.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 |
|
15 | exports.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 |
|
24 | exports.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 |
|
39 | exports.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 |
|
48 | exports.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 |