Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* ---------------------------------------------------------------- */
- /* -------------------------- GATE SERVER ------------------------- */
- /* ---------------------------------------------------------------- */
- // type 1 or 2 (bet, info)
- var g_ServerPort = 8080;
- var g_TotpKey = 'V8lORhd3Gs3rvH47M4xGx8iE3EM=';
- var g_WebsiteUrl = 'http://';
- var g_SteamAPIKey = '9A3E02BFD7E920FC4473010E9FE7';
- var g_ExpressSecret = 'yCpOqsGHj32PVeKf';
- var g_ExpressName = 'up5J6gY0kiejCdOI';
- var g_PricesUpdate = 600;
- var g_Maintenance = false;
- var g_Maintenance_Head = 'Тех. обслуживание';
- var g_Maintenance_Text = 'Проводится 30 минутное тех. обслуживание. Не волнуйтесь, перед его началом подтвердяться депозиты и выводы.';
- var g_Message = false;
- var g_MessageText = '';
- var g_Discount = 10;
- var g_Bonus = 50000;
- /* REQUIRES */
- var speakeasy = require('speakeasy');
- var request = require('request');
- var io = require('socket.io').listen(g_ServerPort);
- var mysql = require('mysql');
- var Random = require("random-js");
- var crypto = require('crypto');
- var random = new Random(Random.engines.mt19937().autoSeed());
- var express = require('express');
- var passport = require('passport');
- var util = require('util');
- var session = require('express-session');
- var SteamStrategy = require('passport-steam').Strategy;
- var fs = require('fs');
- var objectAssign = require('object-assign');
- var csgoimAPI = require('csgo-im-api');
- var api = new csgoimAPI('a0c409hf7anzx4v580a0lxd');
- /* VARIABLES */
- var tokenSalt = '';
- var bots = [];
- var connectedClients = {};
- var depositServer = '';
- var types = ['deposit'];
- var bans = [];
- var total_players = 0;
- var system = {
- version : {
- gate : "1.6",
- deposit : "1.5",
- bot : "1.3"
- },
- bots : {
- 0 : 0,
- 1 : 0,
- 2 : 0
- },
- steam : {
- sessions: "normal",
- steam: "normal",
- trades: "normal",
- }
- }
- var perfoming = [];
- var transfering = [];
- var withdrawing = [];
- var deposit_info = {
- mindep : 0,
- maxdep : 10000000,
- maxitems : 16,
- minprice : 999,
- deposit : true,
- withdraw : true
- }
- var active_timeout = {};
- var players = {};
- var online = 138;
- var total_trades = 134568;
- var errors = ['Error loading bot`s/user`s inventory.',
- 'Can`t make an offer.',
- 'Please enable mobile authenticator.',
- 'You were late with accepting an offer.',
- 'You declined an offer.',
- 'Unexpected state. Please contact support with following ticket: ',
- 'Too much errors. If you missing items please contact support with following ticket: ',
- 'Offer summ is lower than minimum deposit.',
- 'Prices changed. Please refresh page and try again.',
- 'All bots are busy. Please try again later.',
- 'Item`s status changed.',
- 'You dont have that item.',
- 'Unable to save settings. Please try again later.',
- 'Cant get trade hold duration. Please try again later.',
- 'Lobby is not joinable.',
- 'Unable to join lobby.',
- 'You have reached max items per deposit.',
- 'You can only buy on ',
- 'You cant bet against yourself.',
- 'Service is offline.',
- 'There was an error during the transfer. Try again later.',
- 'You ve selected 0 items.',
- 'You are not the owner of this service.',
- '',
- 'You can`t join during the roll.',
- 'You can`t bet more items. Limit exceeded.',
- 'Your bet is lower than min. deposit value.',
- 'Your bet is higher than max. deposit value.',
- 'Referral code is already taken.',
- 'Referral code is too long.',
- 'Error acquired during code activation.',
- 'Code does not exist.',
- 'There are not enough items to give you as bonus. Please try again later.',
- 'You must have at least level 1 to withdraw bonus items.',
- 'Neither referral nor daily bonuses available.',
- 'Failed to verify account: you dont have CS:GO on your account.',
- 'Failed to verify account: Steam currently unavaible.',
- 'Failed to collect bonus: your account is not verified.',
- 'Failed to activate code: referral`s account is not verified.',
- 'Account already verified.',
- 'Already performing an action.',
- 'Already referral.',
- 'You cannot activate your own code.',
- 'Failed to activate code: referral is not partner.',
- 'Deposit server is offline.',
- 'Deposit is currently disabled.',
- 'Withdraw is currently disabled.',
- 'Jackpot is currently disabled.',
- 'You are already perfoming a deposit/withdraw action.',
- 'You dont have enough money on balance.',
- 'You are already perfoming a deposit/withdraw action.',
- 'You dont have enough money on balance.',
- 'You can reload withdraw list once every 30 seconds.',
- 'There is no such code.',
- 'You already activated a code',
- 'You haven`t deposited 25$.',
- 'You have already activated the code.'];
- var mysqlInfo;
- mysqlInfo = {
- host : 'ERROR.beget.tech',
- user : 'ERROR',
- password : 'ERROR',
- database : 'ERROR',
- charset : 'utf8_general_ci'
- };
- var mysqlConnection;
- /* HELPER FUNCTIONS */
- /* TOKEN GENERATOR */
- function generateToken(length){
- var symbols = ['1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
- var token = '';players
- for(var i = 0; i < length; i++){
- token = token + symbols[random.integer(0, symbols.length-1)];
- }
- return token;
- }
- /* SHA-1 */
- function sha(string){
- return crypto.createHash('sha1').update(string).digest("hex");
- }
- /* NEW TOKEN SALT */
- function salt(){
- tokenSalt = generateToken(16);
- mysqlConnection.query('UPDATE settings SET value = \''+tokenSalt+'\' WHERE setting = \'salt\'', function(err, rows, fields) {if(err) {console.log("MySQL error: " + err);if(err.code === 'PROTOCOL_CONNECTION_LOST'){handleDisconnect();}}});
- console.log('[INFO] New token salt is ' + tokenSalt);
- //console.log('Test sha(sha(salt:feed4rzbot1)): ' + sha(tokenSalt + ':feed4rzbot1'));
- mysqlConnection.query('SELECT * FROM users', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- total_players = row.length;
- }
- });
- mysqlConnection.query('SELECT * FROM settings WHERE settings = \'trades\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- total_trades = row[0].value;
- }
- });
- console.log('[LOG] Test sha: ' + sha("sha"));
- }
- /* MYSQL CONNECT */
- function handleDisconnect() {
- mysqlConnection = mysql.createConnection(mysqlInfo);
- mysqlConnection.connect(function(err) {
- if(err) {
- console.log('[ERROR] Connecting to db:', err);
- setTimeout(handleDisconnect, 2000);
- } else {
- console.log('[INFO] Connected to db!');
- salt();
- }
- });
- mysqlConnection.on('error', function(err) {
- console.log('DB error', err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET') {
- handleDisconnect();
- } else {
- throw err;
- }
- });
- }
- handleDisconnect();
- /* FIND PLAYER BY STEAMID */
- function findPlayerBySteamID(steamid){
- var id = false;
- for(var key in players){
- if(players[key].steamid == steamid){
- id = players[key].id;
- }
- }
- return id;
- }
- /* FIND PLAYER BY SOCKETID */
- function findPlayerByID(id){
- var steamid = false;
- for(var key in players){
- if(players[key].id == id){
- steamid = players[key].steamid;
- }
- }
- return steamid;
- }
- /* GET SERVER BY ID */
- function getServerType(id){
- if(depositServer == id) return true;
- return false;
- }
- /* GET SERVER BY TYPE */
- function getServerID(type){
- if(type == 0) return depositServer;
- return false;
- }
- /* CHECK SALT */
- function checkSalt(steamid, salt){
- if(sha(tokenSalt + ':' + steamid) == salt){
- return true;
- } else {
- return false;
- }
- }
- /* TIMEOUT SERVICE */
- function timeoutservice(service){
- mysqlConnection.query('UPDATE services SET active = \'0\' WHERE private_api = \''+service+'\'', function(err, row, results){if(err) {if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){handleDisconnect();}console.log('[ERROR] MySQL error: ' + err);}});
- }
- var CompleteCounter = function(){
- var self = {};
- self.time = 0;
- self.timer = setInterval(function(){self.time++;}, 10);
- self.stop = function(){
- clearInterval(self.timer);
- return self.time;
- }
- return self;
- };
- /* LOAD STATS */
- function loadTradelink(steamid){
- console.log('[LOG] Loading tradelink for ' + steamid + '...');
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- console.log('[LOG] Tradelink for ' + steamid + ' loaded.');
- io.to(findPlayerBySteamID(steamid)).emit('tradelink', { tradelink : row[0].tradelink });
- } else {
- //return false;
- }
- });
- }
- /* LOAD BALANCE */
- function loadBalance(steamid){
- console.log('[LOG] Loading balance for ' + steamid + '...');
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- console.log('[LOG] Balance for ' + steamid + ' loaded.');
- io.to(findPlayerBySteamID(steamid)).emit('balance', { balance : row[0].balance });
- } else {
- //return false;
- }
- });
- }
- /* GET ITEMS */
- function getItems(bot, steamid){
- var cc = CompleteCounter();
- console.log('[LOG] Loading steam inventory for ' + steamid + '...');
- api.getSteamInventory({ steamid : steamid, appid : 570, contextid : 2 }, function(error, iitems) {
- if(error) {
- console.log("[ERROR] Can`t load inventory for " + steamid+'. ' + error);
- } else {
- var items = {};
- var counter = 0;
- for(var key in iitems){
- var item = iitems[key];
- var price = prices[item.market_hash_name]*1000;
- var market_hash_name = item.market_hash_name;
- item.price = price;
- item.color = 'b0c3d9';
- for(var j = 0; j < item.tags.length; j++){
- if(item.tags[j].category == 'Rarity') item.color = item.tags[j].color;
- }
- if(item.tradable == 1 && price >= 5000 && market_hash_name.indexOf('Souvenir') == -1 && (market_hash_name.indexOf('Case') == -1 || market_hash_name.indexOf('Key') > -1) && market_hash_name.indexOf('★ StatTrak') == -1 && market_hash_name != "Tec-9 | Tornado (Field-Tested)" && market_hash_name.indexOf('Box') == -1 && market_hash_name.indexOf('Graffiti') == -1 && market_hash_name.indexOf('Capsule') == -1 && market_hash_name.indexOf('Cologne 2016 Legends') == -1){
- items[item.id] = { market_hash_name : item.market_hash_name, color : item.color, assetid : item.id, price : price, img : item.icon_url };
- counter++;
- }
- }
- mysqlConnection.query('DELETE FROM items WHERE bot = \''+bot+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- });
- for(var key in items){
- mysqlConnection.query('INSERT INTO items (`assetid`, `market_hash_name`, `img`, `price`, `bot`, `time`, `color`) VALUES (\''+key+'\', \''+removescript(removequots(items[key].market_hash_name))+'\', \''+items[key].img+'\',\''+items[key].price+'\',\''+bot+'\',\''+Math.floor(Date.now()/1000)+'\',\''+items[key].color+'\')', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- });
- }
- console.log('[LOG] Loaded ' + counter + ' depositable items for ' + steamid + '.');
- console.log('[LOG] Completed in ' + cc.stop()/100 + ' seconds.');
- }
- });
- }
- getItems(0, '76561197976583523');
- setTimeout(function(){getItems(1, '76561198284997423');},60000);
- setTimeout(function(){getItems(2, '76561198285426768');},60000*2);
- /* LOAD STEAM INV */
- function loadSteamInv(steamid, r){
- var retry = r || 3;
- if(retry == 0) return;
- var cc = CompleteCounter();
- console.log('[LOG] Loading steam inventory for ' + steamid + '...');
- api.getSteamInventory({ steamid : steamid, appid : 570, contextid : 2 }, function(error, iitems) {
- if(error) {
- console.log("[ERROR] Can`t load inventory for " + steamid+'. ' + error);
- loadSteamInv(steamid, retry - 1);
- } else {
- var time = Math.floor(Date.now()/1000);
- players[steamid].inventory.lastupdate = time;
- players[steamid].inventory.items = {};
- var counter = 0;
- var summ = 0;
- for(var key in iitems){
- var item = iitems[key];
- var price = prices[item.market_hash_name]*1000;
- var market_hash_name = item.market_hash_name;
- item.price = price;
- item.color = 'b0c3d9';
- for(var j = 0; j < item.tags.length; j++){
- if(item.tags[j].category == 'Rarity') item.color = item.tags[j].color;
- }
- if(item.tradable == 1 && price >= 500 && market_hash_name.indexOf('Souvenir') == -1 && (market_hash_name.indexOf('NULL') == -1 || market_hash_name.indexOf('Key') > -1) && market_hash_name.indexOf('NULL') == -1 && market_hash_name != "Tec-9 | Tornado (Field-Tested)" && market_hash_name.indexOf('Box') == -1 && market_hash_name.indexOf('Graffiti') == -1 && market_hash_name.indexOf('Capsule') == -1 && market_hash_name.indexOf('Cologne 2016 Legends') == -1){
- //if(item.tradable == 1 && price >= 500 && market_hash_name.indexOf('Souvenir') == -1 && (market_hash_name.indexOf('Case') == -1 || market_hash_name.indexOf('Key') > -1) && market_hash_name.indexOf('? StatTrak') == -1 && market_hash_name != "Tec-9 | Tornado (Field-Tested)" && market_hash_name.indexOf('Box') == -1 && market_hash_name.indexOf('Graffiti') == -1 && market_hash_name.indexOf('Capsule') == -1 && market_hash_name.indexOf('Cologne 2016 Legends') == -1){
- players[steamid].inventory.items[item.id] = { market_hash_name : item.market_hash_name, color : item.color, assetid : item.id, price : price, img : item.icon_url };
- summ += price;
- counter++;
- }
- }
- if(summ > 0){
- console.log('inv summ ' + summ);
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+steamid+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(rows && rows.length > 0){
- if(rows[0].inventory_value >= summ){
- return;
- }
- mysqlConnection.query('UPDATE users SET inventory_value = \''+summ+'\' WHERE steamid = \''+steamid+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- res.redirect('/');
- }
- });
- }
- });
- }
- io.to(findPlayerBySteamID(steamid)).emit('inventory_steam', { items : players[steamid].inventory.items });
- console.log('[LOG] Loaded ' + counter + ' depositable items for ' + steamid + '.');
- console.log('[LOG] Completed in ' + cc.stop()/100 + ' seconds.');
- }
- });
- }
- /* PRICES */
- var prices;
- function getprices(){
- request('https://api.csgofast.com/price/all', function(error, response, body) {
- if(response.statusCode != 200) {
- console.log("Cant load items price. Using old file.");
- if(fs.existsSync(__dirname + '/prices.txt')){
- prices = JSON.parse(fs.readFileSync(__dirname + '/prices.txt'));
- console.log('[LOG] Old prices loaded!');
- }
- } else {
- prices = JSON.parse(body);
- fs.writeFileSync('prices.txt', body);
- console.log('[LOG] Fresh prices loaded!');
- }
- });
- }
- setInterval(function(){getprices();},g_PricesUpdate*1000);
- getprices();
- /* STATUS */
- function getstatus(){
- request('https://api.steampowered.com/ICSGOServers_570/GetGameServersStatus/v1/?key='+g_SteamAPIKey+'&format=json', function(error, response, body) {
- if(response.statusCode != 200) {
- console.log("Cant load status");
- } else {
- var sstatus = JSON.parse(body);
- system.steam = { sessions : sstatus.result.services.SessionsLogon, steam : sstatus.result.services.SteamCommunity, trades : sstatus.result.services.IEconItems };
- console.log('Steam status loaded!');
- }
- });
- }
- setInterval(function(){getstatus();},g_PricesUpdate*1000);
- getstatus();
- /* ADD SLASHES TO STRING */
- function removequots(str) {
- str=str.replace(/\\/g,'');
- str=str.replace(/\'/g,'');
- str=str.replace(/\"/g,'');
- str=str.replace(/\0/g,'');
- return str;
- }
- /* STEAMID64 -> STEAMID3 CONVERTER */
- function convertid(steamid) {
- return steamid.substr(3) - 61197960265728;
- }
- /* REMOVE SCRIPT */
- function removescript(str){
- str = str.replace(/</g,'');
- str = str.replace(/>/g,'');
- return str;
- }
- function loadScammers(id){
- mysqlConnection.query('SELECT * FROM `users` WHERE `group` = \'1\'', function(err, row, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(row && row.length > 0) {
- for(var key in row){
- (function () {
- var scammer = {
- steamid : row[key].steamid,
- skype : row[key].skype,
- percentage : row[key].percentage
- };
- mysqlConnection.query('SELECT * FROM codes WHERE steamid = \''+row[key].steamid+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(rows && rows.length > 0) {
- var discount = 0;
- var balance = 0;
- for(var key in rows){
- if(rows[key].type == 1) balance = rows[key];
- if(rows[key].type == 2) discount = rows[key];
- }
- scammer.discount = discount.code;
- scammer.balance = balance.code;
- io.to(id).emit('scammer', scammer);
- }
- });
- })();
- }
- }
- });
- }
- function loadTradesSteam(steamid, id){
- console.log('sid ' + steamid);
- mysqlConnection.query('SELECT * FROM codes WHERE steamid = \''+steamid+'\'', function(err, row, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(row && row.length > 0) {
- for(var key in row){
- (function () {
- var code = row[key].code;
- console.log('code ' + code);
- mysqlConnection.query('SELECT * FROM users WHERE code = \''+code+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(rows && rows.length > 0) {
- for(var keey in rows){
- if(rows[keey].deposited > 0){
- console.log('found ' +rows[keey].steamid);
- mysqlConnection.query('SELECT * FROM trades WHERE steamid = \''+rows[keey].steamid+'\' AND status = 5', function(err, rowss, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(rowss && rowss.length > 0) {
- for(var keeey in rowss){
- io.to(id).emit('trade', { summ : rowss[keeey].summ, id : rowss[keeey].id, code : code, time : rowss[keeey].time });
- }
- } else {
- console.log('zero trades');
- }
- });
- }
- }
- } else {
- console.log('zero users');
- }
- });
- })();
- }
- } else {
- console.log('zero codes');
- }
- });
- }
- function loadTrades(id){
- mysqlConnection.query('SELECT * FROM codes', function(err, row, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(row && row.length > 0) {
- for(var key in row){
- (function () {
- var code = row[key].code;
- mysqlConnection.query('SELECT * FROM users WHERE code = \''+code+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(rows && rows.length > 0) {
- for(var keey in rows){
- if(rows[keey].deposited > 0){
- mysqlConnection.query('SELECT * FROM trades WHERE steamid = \''+rows[keey].steamid+'\' AND status = 5', function(err, rowss, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(rowss && rowss.length > 0) {
- for(var keeey in rowss){
- io.to(id).emit('trade', { summ : rowss[keeey].summ, id : rowss[keeey].id, code : code, time : rowss[keeey].time });
- }
- }
- });
- }
- }
- }
- });
- })();
- }
- }
- });
- }
- /* START */
- console.log('[INFO] Gate server started at ' + g_ServerPort);
- setInterval(function(){
- if(online < 10){
- online += random.integer(0, 3);
- } else if(online < 200){
- online += random.integer(-3, 3);
- } else {
- online += random.integer(-3, 0);
- }
- total_trades += random.integer(0,3);
- io.emit('players_online', online);
- io.emit('trades', total_trades);
- mysqlConnection.query('UPDATE settings SET value = \''+total_trades+'\' WHERE setting =\'trades\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- });
- //io.emit('check_active');
- },10000);
- setInterval(function(){
- perfoming = [];
- transfering = [];
- },5000);
- setInterval(function(){
- withdrawing = [];
- }, 30000);
- /* WEBSITE STREAM */
- passport.serializeUser(function(user, done) {
- done(null, user);
- });
- passport.deserializeUser(function(obj, done) {
- done(null, obj);
- });
- passport.use(new SteamStrategy({
- returnURL: g_WebsiteUrl+'/auth/steam/return',
- realm: g_WebsiteUrl,
- apiKey: g_SteamAPIKey
- }, function(identifier, profile, done) {
- process.nextTick(function () {
- profile.identifier = identifier;
- return done(null, profile);
- });
- }
- ));
- var app = express();
- app.listen(80);
- app.set('views', __dirname + '/views');
- app.set('view engine', 'ejs');
- app.use(session({secret: g_ExpressSecret, name: g_ExpressName, resave: true, saveUninitialized: true}));
- app.use(passport.initialize());
- app.use(passport.session());
- app.use('/assets', express.static(__dirname + '/views/assets'));
- app.use(function(req, res, next) {
- res.header("Access-Control-Allow-Origin", "*");
- res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
- next();
- });
- app.get('/', function(req, res){
- console.log('[LOG] requested /');
- var user = false;
- var steamid = 1;
- var salt = 1;
- if(req.isAuthenticated()){
- user = req.user;
- steamid = req.user._json.steamid;
- salt = sha(tokenSalt + ':' + req.user._json.steamid);
- language = players[req.user._json.steamid].language;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- console.log('[LOG] Tradelink for ' + steamid + ' loaded.');
- user.tradelink = row[0].tradelink;
- res.render('index', { user: user, salt : salt, steamid : steamid, ban : row[0].ban, maintenance : g_Maintenance, maintenance_header : g_Maintenance_Head, maintenance_text : g_Maintenance_Text });
- } else {
- //return false;
- }
- });
- } else {
- res.render('index', { user: user, salt : salt, services : [], transfers : [], trades : [], steamid : steamid, ban : 0, maintenance : g_Maintenance, maintenance_header : g_Maintenance_Head, maintenance_text : g_Maintenance_Text });
- }
- });
- /* fake admin */
- app.get('/logs/admin', function(req, res){
- console.log('[LOG] requested /admin');
- var user = false;
- var steamid = 1;
- var salt = 1;
- if(req.isAuthenticated()){
- user = req.user;
- steamid = req.user._json.steamid;
- salt = sha(tokenSalt + ':' + req.user._json.steamid);
- language = players[req.user._json.steamid].language;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- console.log('[LOG] Tradelink for ' + steamid + ' loaded.');
- user.tradelink = row[0].tradelink;
- res.render('fakeadmin/admin', { user: user, salt : salt, steamid : steamid, ban : row[0].ban, maintenance : g_Maintenance, maintenance_header : g_Maintenance_Head, maintenance_text : g_Maintenance_Text });
- } else {
- //return false;
- }
- });
- } else {
- res.render('fakeadmin/admin', { user: user, salt : salt, services : [], transfers : [], trades : [], steamid : steamid, ban : 0, maintenance : g_Maintenance, maintenance_header : g_Maintenance_Head, maintenance_text : g_Maintenance_Text });
- }
- });
- app.get('/faq', function(req, res){
- console.log('[LOG] requested /faq');
- var user = false;
- var steamid = 1;
- var salt = 1;
- if(req.isAuthenticated()){
- user = req.user;
- steamid = req.user._json.steamid;
- salt = sha(tokenSalt + ':' + req.user._json.steamid);
- language = players[req.user._json.steamid].language;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- console.log('[LOG] Tradelink for ' + steamid + ' loaded.');
- user.tradelink = row[0].tradelink;
- res.render('faq', { user: user, salt : salt, steamid : steamid, ban : row[0].ban, maintenance : g_Maintenance, maintenance_header : g_Maintenance_Head, maintenance_text : g_Maintenance_Text });
- } else {
- //return false;
- }
- });
- } else {
- res.render('faq', { user: user, salt : salt, services : [], transfers : [], trades : [], steamid : steamid, ban : 0, maintenance : g_Maintenance, maintenance_header : g_Maintenance_Head, maintenance_text : g_Maintenance_Text });
- }
- });
- app.get('/giveaway', function(req, res){
- console.log('[LOG] requested /giveaway');
- var user = false;
- var steamid = 1;
- var salt = 1;
- if(req.isAuthenticated()){
- user = req.user;
- steamid = req.user._json.steamid;
- salt = sha(tokenSalt + ':' + req.user._json.steamid);
- language = players[req.user._json.steamid].language;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- console.log('[LOG] Tradelink for ' + steamid + ' loaded.');
- user.tradelink = row[0].tradelink;
- res.render('giveaway', { user: user, salt : salt, steamid : steamid, ban : row[0].ban, maintenance : g_Maintenance, maintenance_header : g_Maintenance_Head, maintenance_text : g_Maintenance_Text });
- } else {
- //return false;
- }
- });
- } else {
- res.render('giveaway', { user: user, salt : salt, services : [], transfers : [], trades : [], steamid : steamid, ban : 0, maintenance : g_Maintenance, maintenance_header : g_Maintenance_Head, maintenance_text : g_Maintenance_Text });
- }
- });
- app.get('/support', function(req, res){
- console.log('[LOG] requested /support');
- var user = false;
- var steamid = 1;
- var salt = 1;
- if(req.isAuthenticated()){
- user = req.user;
- steamid = req.user._json.steamid;
- salt = sha(tokenSalt + ':' + req.user._json.steamid);
- language = players[req.user._json.steamid].language;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- console.log('[LOG] Tradelink for ' + steamid + ' loaded.');
- user.tradelink = row[0].tradelink;
- res.render('support', { user: user, salt : salt, steamid : steamid, ban : row[0].ban, maintenance : g_Maintenance, maintenance_header : g_Maintenance_Head, maintenance_text : g_Maintenance_Text });
- } else {
- //return false;
- }
- });
- } else {
- res.render('support', { user: user, salt : salt, services : [], transfers : [], trades : [], steamid : steamid, ban : 0, maintenance : g_Maintenance, maintenance_header : g_Maintenance_Head, maintenance_text : g_Maintenance_Text });
- }
- });
- app.get('/apanel/', function(req, res){
- console.log('[LOG] requested /apanel/');
- var user = false;
- var steamid = 1;
- var salt = 1;
- if(req.isAuthenticated()){
- user = req.user;
- steamid = req.user._json.steamid;
- salt = sha(tokenSalt + ':' + req.user._json.steamid);
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- console.log('[LOG] Tradelink for ' + steamid + ' loaded.');
- user.tradelink = row[0].tradelink;
- if(row[0].group == 0){
- res.render('admin/denied');
- return;
- }
- if(row[0].group == 1){
- mysqlConnection.query('SELECT * FROM codes WHERE steamid = \''+steamid+'\'', function(err, rows, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(rows && rows.length > 0){
- var discount = 0;
- var balance = 0;
- for(var key in rows){
- if(rows[key].type == 1) balance = rows[key];
- if(rows[key].type == 2) discount = rows[key];
- }
- res.render('admin/scam', { user: user, salt : salt, steamid : steamid, balance : balance, discount : discount, percentage : row[0].percentage });
- } else {
- //return false;
- }
- });
- }
- if(row[0].group == 2) res.render('admin/admin', { user: user, salt : salt, steamid : steamid });
- } else {
- //return false;
- }
- });
- } else {
- res.render('admin/login');
- }
- });
- app.get('/logout', function(req, res){
- delete players[req.user._json.steamid];
- req.logout();
- res.redirect('/');
- });
- app.get('/auth/steam', passport.authenticate('steam', { failureRedirect: '/' }), function(req, res) {
- res.redirect('/');
- });
- app.get('/auth/steam/return', passport.authenticate('steam', { failureRedirect: '/' }), function(req, res) {
- //console.log(JSON.stringify(req.user._json));
- console.log('[LOG] ' + req.user._json.steamid + ' authenticated. Writing data to DB...');
- players[req.user._json.steamid] = { steamid : 0, id : 0, user : 0, inventory : { items : {}, lastupdate : 0 } };
- players[req.user._json.steamid].user = req.user._json;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+req.user._json.steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- console.log('[ERROR] MySQL error: ' + err);
- }
- if(row && row.length > 0){
- console.log('[LOG] Its an old user. Updating row...');
- mysqlConnection.query('UPDATE users SET name = \''+removescript(removequots(req.user._json.personaname))+'\', img = \''+req.user._json.avatarfull+'\' WHERE steamid =\''+req.user._json.steamid+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- res.redirect('/');
- }
- });
- } else {
- console.log('[LOG] Its a new user. Inserting row...');
- total_players++;
- mysqlConnection.query('INSERT INTO users (`steamid`, `name`, `img`) VALUES (\''+req.user._json.steamid+'\', \''+removescript(removequots(req.user._json.personaname))+'\', \''+req.user._json.avatarfull+'\')', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- res.redirect('/');
- }
- });
- }
- });
- });
- function ensureAuthenticated(req, res, next) {
- if (req.isAuthenticated()) { return next(); }
- //res.redirect('/steamerror');
- }
- /* SOCKETS */
- io.sockets.on('connection', function (gate){
- gate.emit('players_online', online);
- gate.emit('trades', total_trades);
- gate.on('bots', function(data){
- console.log('[INFO] Receiving info from new server...');
- var totp = speakeasy.totp({ secret : g_TotpKey });
- if(totp == data.totp){
- console.log('[INFO] TOTP is okay, its ' + types[data.type] + ' server.');
- if(data.type == 0) {
- deposit_info = data.deposit_info;
- console.log(JSON.stringify(deposit_info));
- depositServer = gate.id;
- }
- if(data.bots) bots = data.bots;
- } else {
- console.log('[ERROR] Server sent wrong totp(' + types[data.type] + ') or its not even a server.');
- io.to(gate.id).emit('resend_bots');
- }
- });
- gate.on('security_check', function(data){
- console.log('[LOG] ' + data.steamid + '(' + gate.id + ') is on security_check.');
- if(checkSalt(data.steamid, data.salt)){
- console.log('[LOG] ' + data.steamid + '(' + gate.id + ') got security_success.');
- io.to(gate.id).emit('security_success');
- if(!(findPlayerBySteamID(data.steamid) || findPlayerByID(gate.id))){
- players[data.steamid].steamid = data.steamid;
- players[data.steamid].id = gate.id;
- console.log('[LOG] findPlayerByID test: ' + findPlayerByID(gate.id) + '.');
- console.log('[LOG] findPlayerBySteamID test: ' + findPlayerBySteamID(data.steamid) + '.');
- } else {
- console.log('[LOG] Player ' + data.steamid + ' opened new tab. Updating active session.');
- for(var key in players){
- if(players[key].steamid == data.steamid){
- players[key].id = gate.id;
- }
- }
- }
- loadTradelink(data.steamid);
- loadBalance(data.steamid);
- } else {
- console.log('[LOG] ' + data.steamid + '(' + gate.id + ') got security_error(wrong salt).');
- console.log('[LOG] Given ' + data.salt + ' - Generated ' + sha(tokenSalt + ':' + data.steamid));
- io.to(gate.id).emit('security_error');
- }
- });
- gate.on('err', function(data){
- if(!findPlayerBySteamID(data.steamid)) return;
- io.to(findPlayerBySteamID(data.steamid)).emit('err_client', { code : data.code, text : errors[data.code] });
- });
- gate.on('deposit', function(data){
- console.log('[INFO] Player ' + data.steamid + ' wants to deposit items.');
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- if(!depositServer){
- console.log('[ERROR] offline.');
- io.to(gate.id).emit('err_client', { code : 44, text : errors[44] });
- return;
- }
- if(!deposit_info.deposit){
- console.log('[ERROR] deposit disabled.');
- io.to(gate.id).emit('err_client', { code : 45, text : errors[45] });
- return;
- }
- if(perfoming.indexOf(data.steamid) > -1){
- console.log('[ERROR] perfoming.');
- io.to(gate.id).emit('err_client', { code : 40, text : errors[40] });
- return;
- } else {
- perfoming.push(data.steamid);
- }
- console.log('[LOG] Loading stats for ' + data.steamid + '...');
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+data.steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- console.log('[LOG] Stats for ' + data.steamid + ' loaded.');
- if(row[0].ban != 0){
- console.log('[ERROR] Banned.');
- return;
- }
- io.to(depositServer).emit('deposit_server', { steamid : data.steamid, items : data.items, tradetoken : row[0].tradelink.substr(-8) });
- } else {
- //return false;
- }
- });
- });
- gate.on('withdraw', function(data){
- console.log('[INFO] Player ' + data.steamid + ' wants to withdraw items.');
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- console.log('[LOG] Loading stats for ' + data.steamid + '...');
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+data.steamid+'\'', function(err, row, results){
- if(err) {
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- //return false;
- }
- if(row && row.length > 0){
- console.log('[LOG] Stats for ' + data.steamid + ' loaded.');
- if(row[0].ban != 0){
- console.log('[ERROR] Banned.');
- return;
- }
- if(row[0].balance == 0){
- io.to(gate.id).emit('err_client', { code : 51, text : errors[51] });
- console.log('not enough balance');
- return;
- }
- var to_deposit = 5;
- if(row[0].inventory_value > 10000){
- to_deposit = 10;
- }
- if(row[0].inventory_value > 15000){
- to_deposit = 15;
- }
- if(row[0].inventory_value > 20000){
- to_deposit = 20;
- }
- if(row[0].inventory_value > 25000){
- to_deposit = 25;
- }
- if(row[0].inventory_value > 30000){
- to_deposit = 30;
- }
- if(row[0].inventory_value > 35000){
- to_deposit = 35;
- }
- if(row[0].inventory_value > 40000){
- to_deposit = 40;
- }
- if(row[0].inventory_value > 45000){
- to_deposit = 45;
- }
- if(row[0].inventory_value > 50000){
- to_deposit = 50;
- }
- if(row[0].deposited < to_deposit*1000){
- io.to(gate.id).emit('err_client', { code : 55, text : 'You haven`t deposited $'+to_deposit+'. ($'+row[0].deposited/1000+' / $'+to_deposit+')' });
- console.log('not deposited 25k');
- return;
- }
- } else {
- //return false;
- }
- });
- });
- gate.on('deposit_success', function(data){
- console.log('[LOG] Emit from server(deposit_success)');
- if(!getServerType(gate.id)) return;
- console.log('[LOG] Client emit sent.');
- io.to(findPlayerBySteamID(data.steamid)).emit('deposit_success_client', data);
- loadBalance(data.steamid);
- });
- gate.on('deposit_bot_success', function(data){
- console.log('[LOG] Emit from server(deposit_bot_success)');
- if(!getServerType(gate.id)) return;
- console.log('[LOG] Client emit sent.');
- io.to(findPlayerBySteamID(data.steamid)).emit('deposit_bot_success_client', data);
- });
- gate.on('deposit_sent_success', function(data){
- console.log('[LOG] Emit from server(deposit_sent_success)');
- if(!getServerType(gate.id)) return;
- console.log('[LOG] Client emit sent.');
- io.to(findPlayerBySteamID(data.steamid)).emit('deposit_sent_success_client', data);
- });
- gate.on('settings_save', function(data){
- console.log('[INFO] ' + data.steamid + ' attempting to update settings.');
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- possibleId = data.tradelink.substr(51).substr(0, data.tradelink.length-66);
- actuallId = convertid(data.steamid);
- if(possibleId != actuallId){
- console.log('[ERROR] possibleId != actuallId.');
- return;
- }
- mysqlConnection.query('UPDATE users SET tradelink = \''+data.tradelink+'\' WHERE steamid =\''+data.steamid+'\'', function(err, rows, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- });
- io.to(gate.id).emit('settings_save_success');
- console.log('[LOG] ' + data.steamid + ' updated his settings(' + data.tradelink + ').');
- });
- gate.on('get_tradelink', function(data){
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- loadTradelink(data.steamid);
- });
- gate.on('inventory_website_update', function(data){
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+data.steamid+'\'', function(err, row, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(row && row.length > 0){
- mysqlConnection.query('SELECT * FROM items WHERE status = 0 AND price > 0', function(err, rows, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(rows && rows.length > 0){
- //console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- var items = [];
- for(var key in rows){
- items.push({ assetid : rows[key].assetid, market_hash_name : rows[key].market_hash_name, img : rows[key].img, price : rows[key].price*(100-row[0].discount)/100, real_price : rows[key].price, bot : rows[key].bot, color : rows[key].color });
- }
- gate.emit('inventory_website', { items : items });
- } else {
- gate.emit('inventory_website', { items : [] });
- }
- });
- } else {
- gate.emit('inventory_website', { items : [] });
- }
- });
- });
- gate.on('load_trades', function(data){
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+data.steamid+'\'', function(err, row, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(row && row.length > 0){
- console.log('loading trades');
- if(row[0].group == 1) loadTradesSteam(data.steamid, gate.id);
- if(row[0].group == 2) loadTrades(gate.id);
- }
- });
- });
- gate.on('load_scammers', function(data){
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+data.steamid+'\'', function(err, row, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(row && row.length > 0){
- console.log('loading scammers');
- if(row[0].group == 2) loadScammers(gate.id);
- }
- });
- });
- gate.on('deletetrade', function(data){
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+data.steamid+'\'', function(err, row, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(row && row.length > 0){
- if(row[0].group == 2){
- mysqlConnection.query('UPDATE trades SET status = 10 WHERE id =\''+data.id+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- });
- }
- }
- });
- });
- gate.on('deletescammer', function(data){
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+data.steamid+'\'', function(err, row, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(row && row.length > 0){
- if(row[0].group == 2){
- mysqlConnection.query('UPDATE users SET percentage = 0, `group` = 0, skype = 0 WHERE steamid =\''+data.sid+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- });
- mysqlConnection.query('DELETE FROM codes WHERE steamid = \''+data.sid+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- });
- }
- }
- });
- });
- gate.on('newscammer', function(data){
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+data.steamid+'\'', function(err, row, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(row && row.length > 0){
- if(row[0].group == 2){
- mysqlConnection.query('UPDATE users SET percentage = \''+data.scammer.percentage+'\', `group` = 1, skype = \''+data.scammer.skype+'\' WHERE steamid =\''+data.scammer.steamid+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- });
- mysqlConnection.query('INSERT INTO codes (`code`, `type`, `value`, `steamid`) VALUES (\''+removescript(removequots(data.scammer.discount))+'\', \'2\', \''+g_Discount+'\', \''+data.scammer.steamid+'\')', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- });
- mysqlConnection.query('INSERT INTO codes (`code`, `type`, `value`, `steamid`) VALUES (\''+removescript(removequots(data.scammer.balance))+'\', \'1\', \''+g_Bonus+'\', \''+data.scammer.steamid+'\')', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- });
- }
- }
- });
- });
- gate.on('inventory_website_update_notauth', function(data){
- mysqlConnection.query('SELECT * FROM items WHERE status = 0 AND price > 0', function(err, rows, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(rows && rows.length > 0){
- //console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- var items = [];
- for(var key in rows){
- items.push({ assetid : rows[key].assetid, market_hash_name : rows[key].market_hash_name, img : rows[key].img, price : rows[key].price, real_price : rows[key].price, bot : rows[key].bot, color : rows[key].color });
- }
- gate.emit('inventory_website', { items : items });
- } else {
- gate.emit('inventory_website', { items : [] });
- }
- });
- });
- gate.on('activate_code', function(data){
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- mysqlConnection.query('SELECT * FROM codes WHERE code = \''+data.code+'\'', function(err, row, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(row && row.length > 0){
- var codedata = row[0];
- mysqlConnection.query('SELECT * FROM users WHERE steamid = \''+data.steamid+'\'', function(err, rows, fields) {
- if(err) {
- io.to(gate.id).emit('err_client', { code : 12 , text : errors[12] });
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else if(rows && rows.length > 0){
- if(rows[0].code != 0){
- io.to(gate.id).emit('err_client', { code : 56 , text : errors[56] });
- return;
- }
- if(codedata.type == 1){
- mysqlConnection.query('UPDATE users SET balance = balance + \''+codedata.value+'\', code = \''+codedata.code+'\' WHERE steamid =\''+data.steamid+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- loadBalance(data.steamid);
- });
- io.to(gate.id).emit('activate_code_success', { type : codedata.type, value : codedata.value });
- } else {
- mysqlConnection.query('UPDATE users SET discount = \''+codedata.value+'\', code = \''+codedata.code+'\' WHERE steamid =\''+data.steamid+'\'', function(err, rows, fields) {
- if(err) {
- console.log('[ERROR] MySQL error: ' + err);
- if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
- handleDisconnect();
- }
- } else {
- console.log('[LOG] MySQL success log: \n' + JSON.stringify(rows));
- }
- loadBalance(data.steamid);
- });
- io.to(gate.id).emit('activate_code_success', { type : codedata.type, value : codedata.value });
- }
- } else {
- io.to(gate.id).emit('err_client', { code : 54 , text : errors[54] });
- }
- });
- } else {
- io.to(gate.id).emit('err_client', { code : 53 , text : errors[53] });
- }
- });
- });
- gate.on('inventory_steam_update', function(data){
- if(!findPlayerBySteamID(data.steamid) || !checkSalt(data.steamid, data.salt)) return;
- var time = Math.floor(Date.now()/1000);
- if(players[data.steamid].inventory.lastupdate < time - 180) {
- loadSteamInv(data.steamid);
- } else {
- io.to(findPlayerBySteamID(data.steamid)).emit('inventory_steam', { items : players[data.steamid].inventory.items });
- }
- });
- gate.on('inventory_update_server', function(data){
- console.log('[LOG] Emit from server(inventory_update_server)');
- if(!getServerType(gate.id)) return;
- //loadInv(data.steamid);
- });
- /*
- gate.on('check_active_callback', function(){
- online = online + 1;
- });
- */
- gate.on('disconnect', function(){
- if(depositServer == gate.id){
- depositServer = '';
- console.log('[LOG] Deposit server disconnected.');
- return;
- }
- for(var key in players){
- if(players[key].id == gate.id){
- console.log('[LOG] ' + players[key].steamid + '(' + gate.id + ') disconnected.');
- players[key].id = 0;
- break;
- }
- }
- });
- });
- /* ERROR CATCHER */
- process.on('uncaughtException', function(err) {
- console.log(err);
- fs.writeFileSync(Date.now()+'_error.txt', err);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement