Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mysql = require('../mysql/mysql.js');
- var headers = require('./headers.js');
- var client = require('./client.js');
- var rooms = require('./rooms.js');
- var Users = {
- Obj: {},
- usersID: {},
- User: function(data) {
- var user = this;
- this.username = data.username;
- this.socketID = data.socketID;
- this.curRoom = null;
- this.speed = 2;
- this.rank = 0;
- },
- New: function(fiveSocket, socket, username) {
- var socketID = socket.id;
- var keys = Object.keys(Users.usersID).length;
- var id = keys + 1;
- var timestamp = new Date().getTime();
- var userip = socket.request.connection.remoteAddress;
- Users.Obj[id] = new Users.User({username: username, socketID: socketID});
- Users.usersID[username] = id;
- var object = Users.Obj[id];
- mysql.Query('UPDATE users SET ip_last = ?, last_seen = ?, is_online = ? WHERE username = ?', [userip, timestamp, 1, username]);
- mysql.Query('SELECT * FROM users WHERE username = ? LIMIT 1', username, function(rows) {
- var row = rows[0];
- Users.Obj[id].rank = row.rank;
- fiveSocket.emitClient(socketID, headers.auth, {
- status: true,
- username: object.username,
- rank: object.rank,
- });
- });
- },
- Try: function(fiveSocket, socket, username, password) {
- mysql.Query('SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1', [username, password], function(rows) {
- var row = rows[0];
- if(rows.length > 0 && row.username == username && row.password == password) {
- if(Users.usersID[row.username] == undefined || Users.usersID[row.username] == null) Users.New(fiveSocket, socket, username);
- }
- });
- },
- check: function(fiveSocket, socket, username, password) {
- var socketID = socket.id;
- mysql.Query('SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1', [username, password], function(rows) {
- var row = rows[0];
- if(rows.length > 0 && row.username == username && row.password == password) {
- if(Users.usersID[row.username] == undefined || Users.usersID[row.username] == null) fiveSocket.emitClient(socketID, headers.askAuth, { status: true });
- else fiveSocket.emitClient(socketID, headers.askAuth, { status: false });
- } else {
- fiveSocket.emitClient(socketID, headers.askAuth, {
- status: false
- });
- }
- });
- },
- Remove: function(id) {
- var username = Users.getNameById(id);
- mysql.Query('UPDATE users SET is_online = ? WHERE username = ?', [0, username]);
- var usr = Users.Obj[id];
- rooms.removeUser(usr.curRoom, id);
- delete Users.usersID[username];
- delete Users.Obj[id];
- },
- ChangePos: function(socketID, x, y) {
- var uid = users.getIdBySocketID(socketID);
- Users.Obj[uid].position.coordinates = [x, y];
- },
- // get elements
- getIdByName: function(name) {
- return Users.usersID[name];
- },
- getNameById: function(id) {
- return Users.Obj[id].username;
- },
- getIdBySocketID: function(socketid) {
- var result = null;
- for(var User in Users.Obj) {
- var u = Users.Obj[User];
- if(u.socketID == socketid) var result = Users.getIdByName(u.username);
- }
- if(result == null) return false;
- else return result;
- },
- getSocketIDbyId: function(id) {
- return Users.Obj[id].socketID;
- },
- removeAll: function() {
- var usersArray = Object.keys(Users.usersID);
- usersArray.forEach(function(a) {
- var id = Users.getIdByName(a);
- Users.Remove(id);
- });
- }
- }
- module.exports = Users;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement