Advertisement
Guest User

users.js

a guest
Jan 18th, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var mysql   = require('../mysql/mysql.js');
  2. var headers = require('./headers.js');
  3. var client  = require('./client.js');
  4. var rooms   = require('./rooms.js');
  5. var Users = {
  6.     Obj: {},
  7.     usersID: {},
  8.     User: function(data) {
  9.         var user = this;
  10.         this.username = data.username;
  11.         this.socketID = data.socketID;
  12.         this.curRoom = null;
  13.         this.speed = 2;
  14.         this.rank = 0;
  15.     },
  16.     New: function(fiveSocket, socket, username) {
  17.         var socketID  = socket.id;
  18.         var keys      = Object.keys(Users.usersID).length;
  19.         var id        = keys + 1;
  20.         var timestamp = new Date().getTime();
  21.         var userip    = socket.request.connection.remoteAddress;
  22.         Users.Obj[id] = new Users.User({username: username, socketID: socketID});
  23.         Users.usersID[username] = id;
  24.         var object = Users.Obj[id];
  25.         mysql.Query('UPDATE users SET ip_last = ?, last_seen = ?, is_online = ? WHERE username = ?', [userip, timestamp, 1, username]);
  26.         mysql.Query('SELECT * FROM users WHERE username = ? LIMIT 1', username, function(rows) {
  27.             var row = rows[0];
  28.             Users.Obj[id].rank     = row.rank;
  29.             fiveSocket.emitClient(socketID, headers.auth, {
  30.                 status: true,
  31.                 username: object.username,
  32.                 rank: object.rank,
  33.             });
  34.         });
  35.     },
  36.     Try: function(fiveSocket, socket, username, password) {
  37.         mysql.Query('SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1', [username, password], function(rows) {
  38.             var row = rows[0];
  39.             if(rows.length > 0 && row.username == username && row.password == password) {
  40.                 if(Users.usersID[row.username] == undefined || Users.usersID[row.username] == null) Users.New(fiveSocket, socket, username);
  41.             }
  42.         });        
  43.     },
  44.     check: function(fiveSocket, socket, username, password) {
  45.         var socketID = socket.id;
  46.         mysql.Query('SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1', [username, password], function(rows) {
  47.             var row = rows[0];
  48.             if(rows.length > 0 && row.username == username && row.password == password) {
  49.                 if(Users.usersID[row.username] == undefined || Users.usersID[row.username] == null) fiveSocket.emitClient(socketID, headers.askAuth, { status: true });
  50.                 else fiveSocket.emitClient(socketID, headers.askAuth, { status: false });
  51.             } else {
  52.                 fiveSocket.emitClient(socketID, headers.askAuth, {
  53.                     status: false
  54.                 });
  55.             }
  56.         });
  57.     },
  58.     Remove: function(id) {
  59.         var username = Users.getNameById(id);
  60.         mysql.Query('UPDATE users SET is_online = ? WHERE username = ?', [0, username]);
  61.         var usr = Users.Obj[id];
  62.         rooms.removeUser(usr.curRoom, id);
  63.         delete Users.usersID[username];
  64.         delete Users.Obj[id];
  65.     },
  66.     ChangePos: function(socketID, x, y) {
  67.         var uid = users.getIdBySocketID(socketID);
  68.         Users.Obj[uid].position.coordinates = [x, y];
  69.     },
  70.     // get elements
  71.     getIdByName: function(name) {
  72.         return Users.usersID[name];
  73.     },
  74.     getNameById: function(id) {
  75.         return Users.Obj[id].username;
  76.     },
  77.     getIdBySocketID: function(socketid) {
  78.         var result = null;
  79.         for(var User in Users.Obj) {
  80.             var u = Users.Obj[User];
  81.             if(u.socketID == socketid) var result = Users.getIdByName(u.username);
  82.         }
  83.         if(result == null) return false;
  84.         else return result;
  85.     },
  86.     getSocketIDbyId: function(id) {
  87.         return Users.Obj[id].socketID;
  88.     },
  89.     removeAll: function() {
  90.         var usersArray = Object.keys(Users.usersID);
  91.         usersArray.forEach(function(a) {
  92.             var id = Users.getIdByName(a);
  93.             Users.Remove(id);
  94.         });
  95.     }
  96. }
  97. module.exports = Users;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement